问题在于,每次刷新页面或将页面更改为另一个页面时,session_id都会更改,并且会话文件将在session_save_path中创建。 这是我的代码的初始部分:
<?php
session_start();
echo session_id();
...
?>
显然会话变量(这是我需要的东西)不起作用。
奇怪的是,该页面在localhost上工作正常但在我在服务器上试用时不起作用。
提前致谢。
答案 0 :(得分:2)
在服务器中检查此设置:session.auto_start
这会导致会话在每个页面中自动启动,无论您是否致电session_start()
。
确保会话开始前没有幻像CRLFs
或此类内容。在生产中,error_reporting可以关闭,因此它可能不会被捕获,但会话可能会发现难以写入。这有时会导致这种情况。
答案 1 :(得分:0)
在您的服务器上,php.ini
检查您的Cookie的TTL。 session.cookie_lifetime
定义cookie将以秒为单位的持续时间(默认值为0,这意味着在浏览器关闭之前),session.gc_maxlifetime
定义数据删除前的时间,也以秒为单位。
并确保会话文件未存储在/tmp
文件夹中。
答案 2 :(得分:0)
看起来你的会话目录不可写。
这就是为什么php每次都会生成一个新的会话文件。 检查chmod的会话文件夹。