我有一个奇怪的问题。我正在使用jquery $.post()
从PHP
脚本发送/接收变量。
JavaScript的:
$("#r_submit").click(function()
{
$.post("http://" + server + "/msws/",
{
action: "register",
sub_action: "register_validate"
},
function(json)
{
json = $.parseJSON(json);
alert(json.cell_is_good);
});
});
PHP :
http://textuploader.com/?p=6&id=S7zDD
问题:
如果我在我的电脑上运行代码(WAMP)它运行正常, 但是如果我将它上传到我的服务器(justhost)那么它就不会保留会话 如果我在创建会话时提醒会话,它就在那里,但是当我尝试获取会话时 后来,它消失了, 我认为这与服务器认为浏览器已关闭这一事实有关,所以它会破坏会话? 谢谢:))
答案 0 :(得分:2)
您正在开始没有会话ID的会话。为此,您的PHP必须配置为使用transparent session id,默认情况下已停用。因此,您必须在具有AJAX调用的脚本中启动会话,并在POST请求中提交session_id()
,并在PHP中启动会话,如下所示:
if (!isset($_POST['SID'])) {
die('{}');
}
session_start($_POST['SID']);
另外,我会遗漏您在$.post
中呼叫的网址的主机部分,以避免跨域ajax呼叫问题(这也很可能无法解决您的问题)。它只能在同一台服务器上运行,因此您可以像这样编写ajax调用:
$.post("/msws/", //...
答案 1 :(得分:0)
检查您是否有多个会话cookie。
我和codeigniter的情况相同,我发现每个新页面都会创建自己的会话