【发布时间】:2014-07-02 12:10:00
【问题描述】:
我编写了一个登录脚本,它在我的测试服务器 (localhost) 上运行良好,但是当我将它上传到我的虚拟主机的网络服务器时它就无法运行。
我已将其缩小为会话问题 - 成功登录后,会话设置成功,并且用户被重定向,但是当用户被重定向到加载的页面时,会话显然消失了。
我宁愿不发布完整的源代码(还),但这是它的逻辑:
login.php:显示表单,提交给自己,检查用户/密码并设置 $_SESSION['loggedIn'] = true;然后重定向到 index.php
index.php:检查 $_SESSSION['loggedIn'] == true(如果未设置,或者为 false,则重定向回 login.php)。
所以问题是,当用户成功登录并在 login.php 中设置会话后重定向到 index.php 时,$_SESSION['loggedIn'] 甚至不存在。
有没有人知道什么可能导致这样的事情? Web 主机服务器确实支持 cookie/会话 - i made a very simple test,它可以工作,所以我想我的代码一定有什么东西...... :( 但我真的不明白,因为没有什么可以删除 cookie(logout.php 脚本除外)。
【问题讨论】:
-
您是否允许来自远程域的 cookie? PHP 通常配置为将您的 session_id 存储在您机器上的 cookie 中,因此如果您不允许来自您的虚拟主机域的 cookie,则 session_id 将不会从 login.php 存储,因此无法在 index.php 上调用。