问题:尽管启动会话并声明变量,但变量实际上并未设置,并且在其他页面上无法调用。
使用Web检查器,我可以看到PHPSESSID cookie已设置,并且在我尝试调用变量的第二页上是相同的。但是没有变数。
代码:
../ test1.php
<?php
// Start the session
session_start();
$session_name = 'trialAndError'; // Set a custom session name
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
?>
然后我尝试在下一页调用变量......我什么都没得到......
../ test2.php
<?php
session_start();
$session_name = 'trialAndError'; // Set a custom session name
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . "<br>";
echo "Favorite animal is " . $_SESSION["favanimal"];
?>
当我加载../test2.php时,页面显示:
最喜欢的颜色是
最喜欢的动物是
当我检查Web检查器时,我看不到会话变量。
有什么建议吗?
答案 0 :(得分:2)
问题是您的主机无法正确设置服务器,因此无法写入会话文件。虽然您可以设置自己的会话路径,但这可能是让主机修复其配置的一个主要想法。
要设置自己的路径,请使用该页面中的session.save_path:
session.save_path字符串session.save_path定义参数 传递给保存处理程序。如果选择默认文件 handler,这是创建文件的路径。也可以看看 session_save_path()。 ...