【发布时间】:2016-01-26 10:54:55
【问题描述】:
首先,我确实阅读了至少 10 个类似名称的问题和答案,但没有解决问题。
我有一个有效的基于 AJAX 的登录脚本,但现在我已将整个网站复制粘贴到新主机,它不起作用。
过程很简单。
Javascript 将登录数据发送到 ajax.php,发生这种情况:
session_start();
//check database
$_SESSION['isloggedin']=1;
//if I var_dump($_SESSION) here, it prints out `array{'isloggedin' => 1}`
echo "ok";
然后Javascript重定向到index.php,目前是:
session_start();
var_dump($_SESSION);
但是在这里,$_SESSION 是一个空数组!
如果我在两个页面上都使用echo session_id();,它会打印出相同的值。
这可能是什么问题?
请记住,它可以在不同的服务器上完美运行。
【问题讨论】:
-
您是否过早使用
exit或die?这有时会导致会话无法持久化。 -
两个文件中的任何地方都没有退出或死亡。
-
在两台服务器上显示 PHP 的版本,"session.*" ini 选项也会有所帮助。
-
旧服务器是 5.5.29,新服务器是 5.3.3 - 但基本会话功能肯定应该相同吗?这是一个带有会话的 pastebin。* 两台服务器的 php.ini 设置:pastebin.com/jM27JDdx