Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery.post不';不要创建会话_Php_Ajax_Session_Jquery - Fatal编程技术网

Php jquery.post不';不要创建会话

Php jquery.post不';不要创建会话,php,ajax,session,jquery,Php,Ajax,Session,Jquery,我有一个奇怪的问题。我正在使用jquery$.post()从PHP脚本发送/接收变量 JavaScript: $("#r_submit").click(function() { $.post("http://" + server + "/msws/", { action: "register", sub_action: "register_validate" }, function(json) { jso

我有一个奇怪的问题。我正在使用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

问题:

$("#r_submit").click(function()
{
    $.post("http://" + server + "/msws/", 
    {
        action: "register",
        sub_action: "register_validate"
    },
    function(json) 
    {
        json = $.parseJSON(json);
        alert(json.cell_is_good);
    });
});
如果我在我的电脑上运行代码(WAMP),它工作正常, 但是如果我把它上传到我的服务器(justhost),那么它就不能保持会话 如果我在创建会话时提醒它,它就在那里,但是当我尝试获取会话时 后来就不见了,, 我认为这与服务器认为浏览器已关闭这一事实有关,因此它破坏了会话?
谢谢:)

检查您是否有多个会话cookie


我对codeigniter也有同样的情况,我发现每个新页面都会创建自己的会话

您在启动会话时没有会话id。要使其正常工作,您的PHP必须配置为使用,默认情况下是禁用的。因此,您必须在具有AJAX调用的脚本中启动会话,并在POST请求中提交
session\u id()
,然后在PHP中启动会话,如下所示:

if (!isset($_POST['SID'])) {
    die('{}');
}
session_start($_POST['SID']);
$.post("/msws/", //...
另外,我将省略您在
$.post
中调用的url的主机部分,以避免跨域ajax调用问题(这很可能不会解决您的问题)。它只在同一台服务器上工作,因此您可以这样编写ajax调用:

if (!isset($_POST['SID'])) {
    die('{}');
}
session_start($_POST['SID']);
$.post("/msws/", //...

我从chrome上知道这个问题。帖子是在同一台服务器上发布的吗?JavaScript代码中的
server
是否与PHP页面的域相同?竞态条件?你能确认cookie是在firebug中设置的吗?我不认为这是问题所在。cookie随ajax请求一起发送@雷基尔问了一个很好的问题,但这个问题还没有得到回答,这将告诉我们情况是否如此。Chrome也有开发工具,按F12键。javascript是seprate它是一个移动应用程序,它不在服务器上客户端JS还会在哪里。。。?更有理由检查请求。但是如果你说它在本地工作的话,仍然不确定它是否适合。好的-你说你在标题中看到了会话。那么这个答案可能不是你的解决方案。也许可以浏览路径范围注释(跨域)。看这篇文章:是的,它在我的本地机器上也工作得很好。你在子域上工作吗?你能发送你的url吗?对我来说仍然听起来像经典的比赛条件。dj_男孩,那篇文章有意义吗?