问题描述
我创建了一个非常基本脚本来测试$_SESSION
参数,并且在我的服务器上,该脚本运行良好:
<?PHP
session_start();
if(!isset($_SESSION["favcolor"]))
{
$_SESSION["favcolor"] = "green";
}
?>
<html>
<head>
</head>
<body>
<?PHP
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
?>
<br /><br />
<a href="test2.PHP">Go To Next Page</a>
<br />
<a href="kill.PHP">Delete Session</a>
</body>
</html>
第2页完全相同,仅使用第二个Session变量,并且kill链接执行session_unset()
和session_destroy()
,然后重定向到 test1 .PHP 。同样,在 my 服务器上,此代码可以完美运行。
但是,我的客户端服务器上的 exact 完全相同的代码(简单地复制并粘贴,没有任何更改)不能正常工作。在 test.PHP 和 test2.PHP 之间,在 test1.PHP 中设置的会话变量会丢失。同样,回过头来看,第2页中设置的变量丢失了。
我一直在看PHPinfo()
的东西,看看是否有明显的差异,但是我在这里茫然不知所措...
解决方法
这可能是由很多原因引起的,但只是为了开始进行故障排除:
此函数返回True
或False
,具体取决于它是否可以启动会话,因此也许您可以打印此返回值,以检查它是否确实为您保存了该值
否则,您肯定会遇到php.ini配置问题,并且必须在客户端服务器上检查these values。
您可以在php的official site上查看session_start()
的文档
这是由于session.save_path配置错误所致。
将其指向正确的文件夹后,一切运行正常