Javascript $\未在php中检索会话
我正在使用这个验证码插件,在我的网站上,我在我的wamp服务器上有HTML表单,它正在将它提交到位于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
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>