0

私は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のセッションタイムアウト)時間後にセッションを維持するわけではありません。セッションstatustest変数はログイン時に作成されます。session.timeout到達しなくなるまで取得されます。

私はcakephpv1.2を使用しています

4

2 に答える 2

0

非常に高いセッション タイムアウトを維持することはお勧めできません。あなたの要件が彼をより多くの時間記録し続けることだけである場合は、www.milesj.me /resources/script/auto-login のような auto_login コンポーネントを使用してください。

于 2013-10-01T12:45:29.710 に答える