【问题标题】:How to pass php session with XMLHttpRequest如何使用 XMLHttpRequest 传递 php 会话
【发布时间】:2011-10-22 07:12:39
【问题描述】:

我遇到的问题是,我正在通过 XMLHttpRequest 从已经设置了会话 cookie 的页面调用服务器上的 php 脚本。问题是我的页面调用的脚本为每个调用创建一个新的 session_id 并且不使用现有的来存储我想要设置的信息。有什么解决办法吗?

最好的问候,pbcoder

【问题讨论】:

  • 您的会话ID是如何从客户端正常传输到服务器的?通过 cookie 或作为查询参数或两者兼而有之?

标签: php javascript session xmlhttprequest


【解决方案1】:

您可能正在服务器端文件中重新生成会话....您可以在此处发布检查会话的部分吗?您可以在 PHP 中使用 session_id (http://php.net/manual/en/function.session-id.php) 设置特定的会话 ID。

在你的 XHR 中设置 SID 变量

$id_from_xhr_get_or_post_var=$_GET["SID"]; // or $_POST["SID"]; if you're using post
session_id($id_from_xhr_get_or_post_var);
session_name("your_session_name");
session_start();

【讨论】:

    【解决方案2】:

    您可以将旧 ID 存储在隐藏的表单字段中。然后它与您的 XHR 表单数据的其余部分一起发送到 AJAX 处理脚本。

    <input type='hidden' name='oldsession' value='<?php echo session_id(); ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 2011-12-25
      • 2013-12-27
      • 2016-03-02
      • 2010-11-30
      • 1970-01-01
      • 2011-07-24
      相关资源
      最近更新 更多