2015-12-13 29 views
6

これはおそらく簡単な質問です。私は同様のものを数多く見つけ、PHPでセッションのライフタイムを短縮したり拡張したりする方法を尋ねました。PHP:リロード時にセッションの有効期限をリセットする

ini_set('session.gc_maxlifetime', 3600); 
session_set_cookie_params(3600); 
session_start(); 

これは3600秒後にタイムアウトして、私のセッションを設定します:私は私のPHPスクリプトは次のように読み込み、それを達成する方法を知っています。そして、これは基本的には、私が最初にログインしなければならないウェブサイトを開いたときに、ちょうど1時間それを処理してから、すべてのセッションデータが削除されており、再びログインする必要があります。

しかし、これは私が期待している動作ではありません。 1時間後にセッションがタイムアウトするようにします、非アクティブのです。だから私が最初に午前10時に私のウェブサイトを開くとき、10時45分まで何かをして、11時45分にタイムアウトするはずです。

これを実現する方法を教えてください。代わりにsession_set_cookie_params

+0

このタスクでもセッションを使用する必要があります。テンプレート内のpageloadのクッキーを更新するだけで済みます。最後のページロードが3600sより古い場合、セッションを破棄します。しかし、あなたはそれがその短所(毎回実行する必要がある)を参照してください。 –

答えて

8

使用 - >setcookie

代わり

session_set_cookie_params(3600); 
session_start(); 

使用これをし、あなたのウェブサイトのすべてのページにそれを呼び出すには、

$lifetime=3600; 
session_start(); 
setcookie(session_name(),session_id(),time()+$lifetime); 

それはそれぞれのセッションクッキーの有効期限を更新します実行までtime()+$lifetime日付

+2

ありがとう、魅力的なように働いた! – user3205494

関連する問題