Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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
Javascript $\未在php中检索会话_Javascript_Php_Jquery_Ajax_Session - Fatal编程技术网

Javascript $\未在php中检索会话

Javascript $\未在php中检索会话,javascript,php,jquery,ajax,session,Javascript,Php,Jquery,Ajax,Session,我正在使用这个验证码插件,在我的网站上,我在我的wamp服务器上有HTML表单,它正在将它提交到位于http://www.example.com/experiments/emaileasy/index.php。现在的问题是,会话返回空数组,当我以$.ajax提交表单时,它不会被检索,但是如果我直接在浏览器中访问url,我可以看到值。我几乎不知道该怎么做 这是我提交表单的index.php文件 <?php session_start(); print_r($_SESSION

我正在使用这个验证码插件,在我的网站上,我在我的wamp服务器上有HTML表单,它正在将它提交到位于
http://www.example.com/experiments/emaileasy/index.php
。现在的问题是,会话返回空数组,当我以$.ajax提交表单时,它不会被检索,但是如果我直接在浏览器中访问url,我可以看到值。我几乎不知道该怎么做

这是我提交表单的index.php文件

<?php
    session_start();

    print_r($_SESSION);die;

    if(isset($_POST))
    {
        if (empty($_SESSION['captcha']) || trim(strtolower($_POST['captcha'])) != $_SESSION['captcha']) 
        {
            header("HTTP/1.0 400 Bad Request");
            header('Content-type: application/json');
            die(json_encode(array('message' => 'Please recheck the captcha')));
        }

        try {
            $conn = mysql_connect('localhost', 'root', '');
            mysql_select_db('expo', $conn);
            $status = mysql_query("INSERT INTO table SET content = '".mysql_real_escape_string($_POST['content'])."'");

            header("HTTP/1.1 200 OK");
            header('Content-type: application/json');
            echo json_encode(array('message' => 'Success!'));
        } catch (Exception $e) {
            header("HTTP/1.0 400 Bad Request");
            header('Content-type: application/json');
            echo json_encode(array('message' => 'Failed'));
        }
    }
?>
如果我将表单提交到localhost,它工作正常,但当我将表单提交到live server时,会话返回空数组

这是我的.htaccess文件

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Headers X-Requested-With
</IfModule>

标题集访问控制允许原点“*”
标头集访问控制允许标头X-Requested-With
请注意,会话是通过服务器上的
cool php captcha
设置的。我注意到的另一件事是,当加载captcha时,会创建一个会话文件,当我发布值时,会以
PHPSESSID
的名称创建一个新的会话文件,传入AJAX请求(我通过Firebug响应头注意到这一点)


我也得到了
$\u POST
值,但通过AJAX检索时会话返回空数组。请帮忙。提前谢谢。

我没有看到任何东西真正写入会话?这应该发生在哪里?你在哪里设置会话?不要使用mysql函数、search stackoverfollow和google for mysql。你似乎在本地主机上设置会话变量,并试图在服务器上检索它们,这是行不通的。哇,RezaSh,谢谢你的提醒!哈哈。非常有用的帖子来自NullPoièteè。与本帖稍有无关,但确实读得不错。但是是的,您似乎缺少会话变量的实际设置,它们不是简单的post和get变量的副本。@Nanne它是通过很酷的php验证码插件设置的。
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Headers X-Requested-With
</IfModule>