PHP session_id在页面之间或刷新页面时更改

时间:2014-07-30 20:15:52

标签: php session

问题在于,每次刷新页面或将页面更改为另一个页面时,session_id都会更改,并且会话文件将在session_save_path中创建。 这是我的代码的初始部分:

<?php
    session_start();
    echo session_id();
    ...
?>

显然会话变量(这是我需要的东西)不起作用。

奇怪的是,该页面在localhost上工作正常但在我在服务器上试用时不起作用。

提前致谢。

3 个答案:

答案 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的会话文件夹。