質問

私のセッションは現在のウィンドウ/タブでのみ有効のようです。また、タイムアウトが早いようです。私が現在それをやろうとしている方法は次のとおりです。

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

$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();

私はこのことについては比較的初心者なので、ご了承ください。ご協力をいただければ幸いです。

役に立ちましたか?

解決

ここで起こっていたものです。このウェブサイトは、サーバー上の別のウェブサイトとのセッションフォルダを共有するサーバー上にありました。私はini_setとのセッションの寿命を増加させたにもかかわらず、私のセッションは、まだ他のアプリケーションによって削除されていました。

新しいフォルダに、この私だけでセットsession.save_pathはを解決するには、

。問題は解決!

他のヒント

私はちょうどあなたがそれを動作させるためにフォロー行での.htaccessにsession.save_pathはを変更することを追加したいです。私は答えは私がの.iniでそれを変更する考えましたが、それは.htaccessの中にあります。

例えば、

php_value session.save_path /home/kaos/data/sessions/

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top