2009-09-24 6 views
5

にログインしている場合にZend_Authは、私が使用してみましチェック:は、ユーザーが

// do login if request is posted 
if (isset($_POST) && !empty($_POST)) { 
    // do authencation 
    ... 
} else { 
    // request not posted 
    // see if already logged in 
    if (Zend_Auth::getInstance()->hasIdentity()) { 
     echo "already logged in as: " . Zend_Auth::getInstance()->getIdentity(); 
    } 
} 

Zend_Auth::getInstance()->hasIdentity()は常にfalseのように見える...でもログイン後

+0

セッションを確認しますか? –

+3

どのように認証しますか?それが永続していることをどうやって確認しますか?あなたが認証権を持っていれば、hasIdentityはtrueを返します! – markus

+0

私は認証にZend_Authを使用しました。その結果、$ result-> getIdentity()===に従って、http://framework.zend.com/manual/en/zend.auth.html#zend.auth.introduction.persistence.default $ auth-> getIdentity() – iceangel89

答えて

11

これまでにと呼んでいますか?

Zend_Auth::getInstance()->authenticate($adapter)で認証する場合は、ストレージに書き込みますが、アダプタで直接認証を行う場合は、ストレージにIDを書き込む責任があります。

1

あなたはあなたの身元が永続化されていることを確認していますか? (つまり、セッションに保存されているかどうかなど) 各リクエストで再認証する必要がある場合

1

私はので、私はconfigs/application.iniにこの付加価値 (phpinfo())私のサーバー上で設定されていない上、私の場合は に、session.save_pathの値を同じ問題を抱えていた:私は、作成

resources.session.save_path = APPLICATION_PATH "/../data/sessions" 

と私のサーバー上にディレクトリ/data/sessionssessionsは777の権限を持っています

関連する問題