AJAX帖子之间的PHP会话持久性(主要是移动浏览器)


PHP Session Persistence Between AJAX Posts (Mobile Browsers Mostly)

我搜索了很多关于这个话题的信息,有几件事我应该马上说:

  • 是的,我在两个页面的开始使用session_start()
  • 是的,这两个页面都在同一个域名来源
  • session_id()调用在两个页面之间返回不同的ID

这是什么页面看起来像我张贴从(index.php):

session_start();
$name = $_GET['name'];
$id = $_GET['id'];
$session_name = $name.'-'.$id;
$_SESSION[$session_name]['user'] = 'Bob';

然后我有一个post call:

$.post(webroot+"/next.php", {}, function(data){});

在next。php中我有以下内容:

session_start();
$name = $_GET['name'];
$id = $_GET['id'];
$session_name = $name.'-'.$id;
print_r($_SESSION[$session_name]['user']);

这将导致不打印任何内容,因为$_SESSION变量已经用新会话重置。此外,$session_name的值在我打印和测试的两个页面之间是相同的。任何帮助将非常感激!

它就在你眼前,但可能不那么明显。

$.post(

$_POST而不是$_GET

$name = $_POST['name'];
$id = $_POST['id'];
不是

$name = $_GET['name'];
$id = $_GET['id'];

在你的next.php