我有一个主页面启动一个PHP会话,它创建会话ID#1。我用session_id()
检查这个。我想从PHP AJAX脚本访问这些会话变量。为了测试这个,我只是简单地执行:使AJAX PHP脚本使用与主页面相同的会话
session_start();
echo session_id();
从这个AJAX脚本。它返回一个不同的AJAX会话ID。
我知道我可以将会话ID从主页面传递给AJAX脚本。有没有其他方法可以让AJAX脚本默认打开同一个会话?
澄清我通过javascript来做到这一点,更具体地说,它是JQGrid的添加/编辑脚本。
你怎么拨打电话相同的会话?如果它是通过JS,它应该有相同的会话ID。如果是闪光灯,则不同。 – usoban 2012-01-11 15:47:23
这是为了处理会话cookie的范围。很显然,你的AJAX调用所调用的位置不在会话cookie的范围之内 - 要解决这个问题,你需要[扩大范围](http://php.net/session-set-cookie-params)或更改目标位置以使其落入现有范围内。或者,您可以手动将会话ID作为AJAX请求中的GET或POST参数传递。进一步阅读cookie范围[这里](http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path)。 – DaveRandom 2012-01-11 15:47:25
@DaveRandom - 感谢有关cookie范围的信息。我认为这一定是问题所在。会话变量在web根目录 - > index.php文件中定义,并且AJAX脚本位于Web根目录的子文件夹中。我会尽量扩大范围。我想你可以发表你的评论作为答案。 – 2012-01-11 19:00:33