$ _SESSION没有在php中检索

时间:2014-02-10 08:17:32

标签: javascript php jquery ajax session

我在我的网站上使用此验证码插件http://code.google.com/p/cool-php-captcha/,我在我的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'));
        }
    }
?>

这是我的JS文件,

$( "#Form" ).submit(function( event ) {
  // Stop form from submitting normally
  event.preventDefault();

  var data = "content="+$( "#content" ).val()+"&captcha="+$( "#captcha" ).val();
  $.ajax({
      type: "POST",
      url: baseurl+'experiments/emaileasy/index.php',
      data: data
  });
});

如果我将表单提交给localhost它正常工作,但是当我将其提交给实时服务器时,会话返回空数组。

这是我的.htaccess文件,

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

请注意,会话是通过服务器上的cool-php-captcha设置的。我还注意到的另一件事是,当加载验证码时,会创建一个会话文件,当我发布值时,会以PHPSESSID的名义创建一个新的会话文件,传递AJAX请求(我通过Firebug注意到这一点)响应标题)。

我也获得了$_POST值,但是当通过AJAX检索时,会话返回空数组。请帮忙。提前谢谢。

0 个答案:

没有答案