1

ログインしているユーザーのために降下をセットアップしており、セッション時間 () とテーブルに追加された他のいくつかのものがあります。

私が抱えている問題は、ユーザーがブラウザを閉じると、mysql テーブルからセッションが削除されないことです。

ユーザーの観点からは、ブラウザを開くときに再度ログインする必要があるため、問題ありません。

ただし、スーパー ユーザー ダッシュボードの場合、ユーザーがブラウザーを閉じると、ユーザーがログインしていると表示されます。

私はクローズブラウザアラートのjavascriptコードを見ましたが、それなしでそれを行う方法を見つけたいと思います.

次に、おそらくcronスクリプトだと思いましたが、ユーザーが別のページをクリックするたびにtime()を更新していない限り、ユーザーをログアウトできました。それが唯一の方法ですか?

4

2 に答える 2

1

I wouldn't trust the browser telling you it was closing.

The only way is to do it on the server.

Try recording the current time against the session every time it gets validated - this will be the sessions last access time.

Then you can remove all sessions that exceed some time period you've decided on. You can either do this via a cron job, or add it to the session validation code and every user can help keep the table tidy.

于 2012-07-20T23:44:34.417 に答える
1

データベースに「isLoggedIn」列がありませんか。「lastActivityTime」列だけを持つことはできますか。currentTime - lastActivityTime < LoggedOutTime の場合、ユーザーはログアウトされます。

于 2012-07-20T23:42:58.037 に答える