0

簡単な登録フォームがあり、新規参入者は 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);
}

?>

4

1 に答える 1