会话变量在每次重新加载页面时销毁

时间:2019-06-25 15:09:36

标签: php apache session

重新加载页面后,$ _ SESSION变空了! 正常工作,直到服务器进行了一些维护。

为了进行测试,我只有带有以下几行的index.php文件

session_start();
var_dump($_SESSION);
$_SESSION['test'] = 'works';
echo $_SESSION['test']; //displays the 'works' fine

但是,一旦我重新加载页面,“测试”就变得不确定,$ _ SESSION变量为空。

echo session_id(); // changes every time

有人知道在哪里寻找问题吗? 这是关于写权限的Apache错误配置还是cookie的某些问题? 我很高兴听到任何想法

2 个答案:

答案 0 :(得分:0)

检查是否有写入会话文件的权限。 查看错误日志中是否存在错误。

答案 1 :(得分:0)

默认情况下,为当前会话设置PHP会话cookie。刷新时,您会得到一个新的sessionID,因为它是一个新的cookie。

请尝试使用下面的代码来延长会话cookie的生存时间,并重命名“ mydomain”:-)(这是假设您正在使用会话cookie:请参见PHP文档。如果您使用其他方法来管理会话) ,检查那里)

    session_set_cookie_params((60*60*24*31), '/', '.mydomain.com'); //setting for 31 days 
    session_start();