我登录到我的网站(在本地主机上运行),并存储用户ID在会话变量为什么我的系统会自动注销?
$_SESSION['user_id'] = $user_id;
主要页面加载,所有的罚款。我在主页上显示用户标识,所以我确信它的价值。当我加载另一页时,使用
php = 'some_php_file.php';
window.open(php,php);
第二页打开确定。但是,如果我尝试再次打开同一页面,单击主页面上的相同按钮,系统将注销。如果我在window.open()中省略第二个php
(使用''代替),我可能会有同一窗口的多个副本(我不想要的),但没有自动注销的问题。
任何想法可能发生什么?
编辑:如果我关闭第二个窗口并重复该过程,我没有注销问题。我可以根据需要多次关闭并重新打开第二个窗口。只有当我尝试打开第二个窗口时,问题才会发生,但它已经打开。我也可以打开不同的'第二个窗口'(不同的php文件)。如果我尝试在同一个窗口打开TWICE,我只会被注销。
编辑2:似乎我找到了它。之前我叫window.open(),我测试的PHP文件是否存在,使用此功能:
function fileExists(url){
var http = new XMLHttpRequest();
http.open('HEAD',url,true);
http.send();
return http.status != 404;
}
如果我改变http.open()行
http.open('HEAD',url,false);
有用!但manual告诉我们在第三个参数中使用'true'...我该怎么办?
你有一个'在session_start()'在每个PHP入口点的开始? –
是的,我有。如果我没有,自动注销的问题不会因为我省略窗口标题(php变量)而消失,是吗?其实,它第一次不会打开,是吗? – Rodrigo