2017-01-25 14 views
1

PHPを使用してWebサイトを作成しています。ユーザーのログインなどの一部のセッションでセッションを使用しています。セッションのタイムアウトをゼロに設定しています。閉まっている。 私の問題は、ウェブページがしばらくブラウザーで開かれていて、私がそれを使用しないとセッションが終了するということです! 私は、ブラウザを使用していないとき(例えばコードを編集している、昼食などに行ったときなど)、しばらくしてからそれに戻ってリフレッシュします。もう一度ログインしてください。ブラウザが閉じられる前にPHPセッションが終了する

これは私がセッションを開始するために使用する方法である:

function StartSecureSession(bool $RememberMe = false) { 
session_set_cookie_params(($RememberMe? 7*24*60*60 : 0), "/"); 
session_start(); 
session_regenerate_id(true); 
} 

、誰もが何が起こっているのかを教えてもらえますか? はあなた

注意をありがとう:それが重要かどうかは知りませんが、私は、セッションMAXTIMEを設定するのUbuntu 14.04とクロムブラウザ

+2

セッションクッキーのCookieタイムアウトとセッションタイムアウトをサーバー側で混同しているようです。ここの答えでlokを取る:http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes –

+0

私はサーバー側のセッションを意味します。 これは私がそれを起動し、そのタイムアウトを設定するために使用する方法である: '関数StartSecureSession(ブール値$リメンバー・ミー= false)を { session_set_cookie_params(($リメンバー・ミー7 * 24 * 60 * 60:0)、「/ "); session_start(); session_regenerate_id(true); } ' – Amir

+0

クライアント側でjavascript(jQuery)を使用して、アクティビティがない場合にバックグラウンドでセッションのリフレッシュ要求をサーバにトリガすることができます。ここからインスピレーションを受けてください:http://stackoverflow.com/questions/220767/auto-refreshing-div-with-jquery-settimeout-or-another-method –

答えて

0

使用を使用:あなたのconfiugurationファイル内のコード次

使用:

// each client should remember their session id for EXACTLY 10 hour 
ini_set('session.gc_maxlifetime', 36000); 
session_set_cookie_params(36000); 

session_start();

前にこのラインを書いたり、あなたもあなたのphp.iniファイルに設定することができます。

+0

ありがとうございます、しかし、私が必要とするのは、ユーザーが 'Remember Me'をチェックしないと、ブラウザが閉じた後にセッションが終了するということです。 – Amir

+0

* "PHPセッションは、あなたはここで正確な答えを今日とても熱くしていません... – Nytrix

+0

@Nytrix申し訳ありませんが、私は理解していませんでした、あなたはどういう意味ですか? タイトルが十分明確ではありませんか? – Amir

関連する問題