我曾经这样做来测试用户是否已登录,如果是,则显示他/她的内容:
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');
防止打开同一窗口的多个副本。现在,我打开第一个副本确定。当我单击按钮再次打开窗口时,它将从系统中注销!仍在努力了解正在发生的事情......