PHP 会话不会在新服务器上保留


PHP session doesn't persist on new server

首先,我确实阅读了至少 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();,它会打印出相同的值。

这里可能有什么问题?

请记住,它在不同的服务器上完美运行。

您是否尝试过通过在浏览器中重新加载一个页面来进行基本的会话增量测试?例如:

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

它有效吗?

如果将会话数据存储在文件中(默认 PHP 配置):您可以访问存储会话文件的文件夹吗?会话文件中是否存储了分配给会话的任何内容?

第一件事是你必须在哪个页面中使用会话编写第一行是 session_start()还行?

请尝试这个,希望您的问题得到解决