无法设置PHP $ _SESSION变量

时间:2015-09-18 03:17:25

标签: php session cookies

问题:尽管启动会话并声明变量,但变量实际上并未设置,并且在其他页面上无法调用。

使用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检查器时,我看不到会话变量。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

问题是您的主机无法正确设置服务器,因此无法写入会话文件。虽然您可以设置自己的会话路径,但这可能是让主机修复其配置的一个主要想法。

要设置自己的路径,请使用该页面中的session.save_path

  

session.save_path字符串session.save_path定义参数   传递给保存处理程序。如果选择默认文件   handler,这是创建文件的路径。也可以看看   session_save_path()。 ...