会话变量user_id未更新

时间:2015-11-16 12:21:42

标签: php session

我曾经这样做来测试用户是否已登录,如果是,则显示他/她的内容:

if (login_check($conn) == true) {
  // show content here
}

但是因为它有时会失败而我想知道为什么,我把它改成了

$loginErro = login_error($conn);
if (!$loginErro) {
  // show content here
}

所以我可以得到一个数字来了解错误是什么。但此后错误增加了。很多时候,该页面显示我未登录,而实际上我已登录。我需要按F5刷新正确的会话变量。在login_error函数中触发错误的行是

if (!isset($_SESSION['user_id'])) {
    return 4;
}

为什么我的user_id没有被更新,主要是在一段时间后的第一次(可能是会话的cookie超时)?

编辑:不知怎的,我可以隔离问题。当调用window.open()函数时,我正在使用

window.open('some_php_file.php','');

它会打开同一个php文件的多个副本,但加载它们都可以。然后我把它改成了

window.open('some_php_file.php','some_php_file.php');

防止打开同一窗口的多个副本。现在,我打开第一个副本确定。当我单击按钮再次打开窗口时,它将从系统中注销!仍在努力了解正在发生的事情......

0 个答案:

没有答案