簡単な登録フォームがあり、新規参入者は 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;
はsession_start();
、ajax が開始される最初のページのヘッダーに含まれていsession_start()
ます。関数の一部ですdc_header();
。start.php:
<?php
dc_header("Речник|Регистрация");
if (!isset($_SESSION['is_logged'])) {
#header("location: ../views/login.php");
var_dump($_SESSION);
}
?>