0

だからこれは何時間も私を殺してきました。

ユーザーがログインしたときにセッションデータを設定するajaxメソッドがあります。jQueryを介していくつかの変数を送信し、メッセージを出力します(「true」/「false」の場合もあります)。 $.postに戻ったとき。

問題はこれです..物事はうまくいくようですが、「false」が返されます。セッションのuserdata正しく設定されているようです。ページ上に警告するボタンを作成し、設定してます。ログアウトして、すべてのセッションデータがクリアされていることを確認し、再度ログインすると、セッションデータが正しく設定されます。ただし、「false」/「PROBLEM WITH SESSION DATA」メッセージは、jQueryに戻ってきて、毎回アラートが表示されるメッセージです。

public function setUserSessionData(){
    $picture    = $this->input->post('picture', TRUE);
    $email      = $this->input->post('email', TRUE);
    $first_name = $this->input->post('first_name', TRUE);
    $id         = $this->input->post('id', TRUE);

    ChromePhp::log($picture.$email.$first_name.$id);  // all values good

    $newData = array(
        'loggedInStatus' => 'TRUE',
        'picture'        => $picture,
        'first_name'     => $first_name,
        'id'             => $id,
        'email'          => $email
    );

            // userdata is setting correctly
    if($this->session->set_userdata($newData))
    {
        echo("Session data set"); 
    }
    else
    {
        echo("PROBLEM WITH SESSION DATA"); // this is the message that is outputting
    }
}

誰かが何が起こっているのか説明できますか?

4

2 に答える 2

1

set_userdata()常に。を返しますNULL

set_userdata()何かを返すべきだという考えをどこに行けばいいのかわかりません。ドキュメントには戻り値については記載されておらず、コード自体はステートメントとして文書化されて@return voidおり、ステートメントは含まれていませんreturn

于 2013-01-21T23:43:43.613 に答える
0

そのセッション配列でキーを使用するだけではいけませんか?

$newData = array(
    'loggedInStatus' => TRUE,

// ...

$this->session->set_userdata($newData);

if($this->session->userdata('loggedInStatus') === TRUE){ 
    echo("Session data set"); 
}else{
    echo("PROBLEM WITH SESSION DATA");
}
于 2013-01-21T23:31:15.363 に答える