Php 在Ajax函数中创建$\会话时,传递$\会话失败
我有一个简单的注册表格,新来的人将使用ajax功能注册。注册完成后,我在那里创建了一个Php 在Ajax函数中创建$\会话时,传递$\会话失败,php,ajax,session,Php,Ajax,Session,我有一个简单的注册表格,新来的人将使用ajax功能注册。注册完成后,我在那里创建了一个$\u会话['is\u logged']。 在var_dumb上,我得到var已设置。但是当重定向到另一个页面时,它是空的(我已经在两个页面上都包含了session_start()。。。 我在网上的某个地方读到: “会话仅在页面加载/刷新时写入” 是这样,还是我必须在代码中查找其他问题 ajax: $.ajax({ url:"../controllers/register.php
$\u会话['is\u logged']
。
在var_dumb上,我得到var已设置。但是当重定向到另一个页面时,它是空的(我已经在两个页面上都包含了session_start()。。。
我在网上的某个地方读到:
“会话仅在页面加载/刷新时写入”
是这样,还是我必须在代码中查找其他问题
ajax:
$.ajax({
url:"../controllers/register.php",
type:"POST",
data:res,
success: function(responce){
if (responce==1) {
$('#msg').addClass('msg-warning');
$("#form").css('display',"none");
$('#msg').append("<p>It seems that you have already submited the form. Click to "+
" <a href='login.php'>log-in</a> or to <a href='register.php'>register</a>.</p>");
}
else if (responce==2) {
$('#msg').addClass('msg-warning');
$("#form").css('display',"none");
$('#msg').append("<p>You have successfully created account. Click to "+
" <a href='start.php'>welcome</a> to start your .</p>");
$('.menu').append("<li><a href='logout.php'>Log out</a></li>")
}
else{
$('#msg').text(responce);
}
},
error: function(){
$('#msg').text("Opss, try again");
}
});
session_start();
包含在从ajax启动的第一个页面的页眉中。第二个页面,$\u session['is_logged']丢失,同样session_start()
;是dc_header();
函数的一部分。start.php:
<?php
dc_header("Речник|Регистрация");
if (!isset($_SESSION['is_logged'])) {
#header("location: ../views/login.php");
var_dump($_SESSION);
}
添加
session_start();
到register.php的顶部
您需要指定session\u start,这样,被命令执行“register.php”的服务器(来自ajax、直接调用、浏览器脚本、cron作业或任何您可能命名的内容)将根据连接的客户端会话来处理$\u session变量的执行和设置。服务器不会自行猜测这是一个会话“来自已存在会话的ajax调用\u起始页"。您需要指定在register.php中执行的任何操作都是在当前客户端会话中完成的。请以逻辑方式发布ajax代码。将代码发布到您设置值的位置以及检查和重定向的位置。重定向的页面是否与您在ajax调用中使用的页面位于不同的子域上?www.url.c浏览器将om和url.com视为不同的子域,因此每个子域的会话都不同。发布start.php
的代码,检查是否记录在会话中。var\u dump($\u session);
的输出是什么?该死,它工作了。尽管如此,我还是曾经包含了会话\u start()在执行ajax查询后,我需要在页面的页眉中再次声明session_start()。@Alordiel关于用户的任何内容都必须在他的会话中。因此,您从session_start开始。想象一下:如果您使用ajax注销,比方说ajax_log_out.php,您可以看到启动会话是至关重要的(否则哪个用户要注销???)乐意帮助:)
session_start();