我有一个简单的注册表单,新来者将使用 ajax 函数进行注册。$_SESSION['is_logged']
注册完成后我创建一个。在 var_dumb 上,我知道 var 已设置。但是当在另一个页面上重定向时它是空的(我已经在两个页面上都包含了 session_start() ......我在网上某处读到:
“会话只写在页面加载/刷新上”。
是这种情况,还是我必须在我的代码中寻找其他一些问题。
阿贾克斯:
$.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");
}
});
register.php 文件:
if (isset($_SESSION['submited'])) {
echo 1;
exit;
}
include_once('../models/functions.php');
// Give the post parametters to another var
$arr=$_POST;
// function for uploading
$reg = registerMe($arr);
if ($reg === true) {
$_SESSION['submited']=1;
$_SESSION['is_logged']=1
echo(2);
}
else{
echo($reg);
}
exit;
包含在从 ajax 开始的第一页的标题中。session_start();
第二页 - $_SESSION['is_logged'] 丢失的地方,再次是session_start()
; 是dc_header();
功能的一部分。开始.php:
<?php
dc_header("Речник|Регистрация");
if (!isset($_SESSION['is_logged'])) {
#header("location: ../views/login.php");
var_dump($_SESSION);
}
?>