0

私のウェブサイトには次のコードがあります。

session_set_cookie_params(7200, '.website.com', '', false, true);

Web サイトを閲覧すると、2 時間後に Web サイトからログアウトされることがあります。たとえば、フォームを送信している場合、それは非常にイライラします。

私の質問は、どうすればこの問題を解決できますか? ユーザーが 2 時間非アクティブな場合にのみ、ユーザーをログアウトすることは可能ですか? の最初のタイムアウト値はsession_set_cookie_params?

4

2 に答える 2

1

これを試して:

$_SESSION['loginTime'] = time();
if($_SESSION['loginTime'] < time()+120*60){ logoutfunction(); }

その120部分は、指定した 120 分 (2 時間) です。あなたは本当に賢く、ログアウトする前にどれくらい待ちたいかをユーザーに尋ねることができます:D

logoutfunction();また、ユーザーがログアウトする必要がある場合は、 を必要なものに置き換える必要があります (おそらく を使用しますsession_destroy(); header("Location: http://yourwebsite.com/login.php");) 。

これについてさらにサポートが必要な場合はお知らせください:)

于 2013-03-16T17:35:36.757 に答える
0

訪問者が Web サイトを最後に移動した実際の時間を SESSION に保存する必要があります。

ログイン機能:

login_user();
save_actual_time_in_session();

ユーザーがログインすると、ページが読み込まれるたびに次のことを行います。

check_if_time_in_session_is_expired(); // if so, do some action, e.g. redirect to login form
save_actual_time_in_session();

(@ Mattios550ソリューションは機能しません.HTTPリクエストごとloginTimeにセッションの値が実際の時間に更新されるため、有効期限が切れることはありません...)

于 2013-03-16T18:57:51.650 に答える