1

私はこの問題に関して、私を助けることができる答えを見つけることなく、ここと他の場所の両方でたくさんの記事を読みました。そして、主題はかなり広いように思われるので、私は最善の方法は尋ねることだと思います。

現在、jqueryファイルの$.post-scriptを介してフォームからphp-scriptにログインデータを送信しています。そこに問題はありません。文字列を検証して保護するために関数のチェーンをウォークスルーするクラスがあるので、まったく問題はありません。$ .postにfunction(data)を追加することで、セッションを印刷して取得できます。

php-scriptとindex.phpの両方にsession_start()を追加しました。Chromiumを使用していて、セッションが設定されていることを確認できますが、print_r($ _ SESSION);を作成すると 空になります。これも明らかに、私のif(isset($ _ SESSION ['uid']))も機能しません。

js:

$('#login').submit(function(e){
    e.preventDefault();
    values = {};
    var url = '../admin/php/signIn.php';
    console.log('Clicked on submit.');
    $.each($(this).serializeArray(), function(i, field){
        values[field.name] = field.value;
    });
    $.post(url, {username: values.username, password: values.password})
    .done(function(data){ location.reload(); /*alert(data);*/ })
    .fail(function(){ alert('Fail.'); });
});

php:

private function login($uid, $uname){
    $_SESSION['uid'] = $uid;
    echo $_SESSION['username'] = $uname;
    session_start();
}

jqueryで確認できるように、セッションの1つにエコーを追加しました。「プライベート機能[...]」、または他の場所に問題がありますか?(前に言ったように、クラスで遊んでいます。)

私はここでかなり迷っているので、これが誰かにとって理にかなっていることを願っています。

4

1 に答える 1

5

可変セッションの割り当てを開始するsession_start() に、電話をかける必要があります。

于 2013-03-25T22:42:40.800 に答える