私はcakephpアプリでセッションの寿命を延ばそうとしています。remember me
ログインページにチェックボックスがあります。チェックボックスをオンにすると、セッション時間を現在の時間より1時間長くする必要があり、ログイン後のアプリ内のアクションでは、セッション時間をさらに1時間延長する必要があります。
ログイン用のコンポーネントファイルがあり、すべてのアクションはスタートアップ機能に入力されます。(CakePHPのセッションCookie)の有効期間を延長しようとしましたsession.cookie
が、機能しませんでした。
function startup(&$controller) {
/* First try */
setcookie(Configure::read('Session.cookie'),$_COOKIE[Configure::read('Session.cookie')], time() + 3600, "/"); // Configure::read('Session.cookie') is 'CAKEPHP'.
/* Second try */
ini_set('session.gc_maxlifetime', 3600);
/* Third try */
session_set_cookie_params(time() + 3600);
echo $this->Session->read('status').' session <br/>';
echo $_SESSION['test'];
}
しかし、これらすべてがsession.timeout
(CakePHPのセッションタイムアウト)時間後にセッションを維持するわけではありません。セッションstatus
とtest
変数はログイン時に作成されます。session.timeout
到達しなくなるまで取得されます。
私はcakephpv1.2を使用しています。