5

私のセッションは現在のウィンドウ/タブでのみ有効なようです。また、すぐにタイムアウトするようです。これが私が現在それをしようとしている方法です:

これは私のログインコントローラーにあります:

$adapter = $this->getAuthAdapter($data);
$auth    = Zend_Auth::getInstance();
$result  = $auth->authenticate($adapter);

if (!$result->isValid()) {
    $this->view->err = "Invalid username or password.<br/>Please try again.";
    return $this->render('index'); // re-render the login form
}

Zend_Session::rememberMe(60*60*24*7*4);

そして、これは私のブートストラップにあります:

Zend_Session::start();

私はこれらのもののいくつかに比較的慣れていないので、我慢してください!どんな助けでも大歓迎です。

4

3 に答える 3

4

これが何が起こっていたかです。この Web サイトは、サーバー上の別の Web サイトとセッション フォルダーを共有するサーバー上にありました。ini_set を使用してセッションの有効期間を延長しましたが、私のセッションは他のアプリケーションによって削除されていました。

これを解決するには、session.save_path を新しいフォルダーに設定するだけです。問題が解決しました!

于 2009-11-06T15:36:21.720 に答える
2

.htaccess の session.save_path を次の行で変更して機能させることを追加したいだけです。答えは.iniで変更したと思っていましたが、.htaccessにあります。

例えば:

php_value session.save_path /home/kaos/data/sessions/
于 2011-04-18T18:56:02.357 に答える
1

zend_sessionのソースを調べると、rememberMe()メソッドはrememberUntil()を呼び出し、これは組み込みのphpメソッドsession_set_cookie_params()を呼び出します。

したがって、セッション.cookie_lifetimeのphp.ini値を確認することをお勧めします。0でない場合、値がsession.cookie_lifetime未満でない限り、Zend_Session :: RememberMe()は役に立ちません。この場合、 session.cookie_lifetimeのマニュアルページの最初のコメントに示されているように、php.iniまたはアプリケーションでini_set()を使用して0に設定する必要があります。

于 2009-10-17T15:38:53.690 に答える