我写了一个带有登录机制的 php 网站。当用户使用正确的用户名和用户密码时,php 会给他/她一个 $_SESSION['userid']。
在 index.php 中,我使用以下内容检查登录:-
if (!($_SESSION['userid'])){?>
<script>
window.location='login.php';
</script>
<?php }?>
它可以正常工作很长时间。
最近,我在Chrome中发现,在很短的时间(例如几分钟)后,浏览器会清除会话变量,因此,无论我刷新页面还是点击其他指向index.php?XXXX的菜单按钮,检查登录java 脚本工作并把我踢回login.php。但是这种清除不会发生在firefox和IE上。
我注意到chrome有一些特殊情况,当favicon.ico丢失时,浏览器会执行301重定向,清除所有会话。但我相信我已经通过 href="/favicon.ico" 指定了正确的文件位置,文件位于根目录中。
参考上面,还有其他可能的原因可以避免chrome清除session变量吗?