-5

私はphpログインスクリプトを使用しています。(そして私は愚かな初心者の質問があります) 計画は、1 時間後に Cookie を使用してユーザーをログオフすることです。

しかし、ユーザーがログアウト ボタンを押さなかった場合、ユーザーはオンラインのままでした (私のデータベース テーブルでは、MySQL db でレコードが開いたままになっています)。そのレコードを削除すると、すべてがうまくいき、ユーザーはログインできます。

誰か助けてくれませんか?彼にスクリプトでセッションなどを削除させる必要がありますか?

解決策:問題は、ユーザーが再度ログインする前に、ユーザーのログインデータが削除されたことを確認するだけでよいことでした。そこで、ユーザーがログインしたい場合に開いているセッションを削除する小さなスクリプトを作成しました。結局、私は自分のコードを使うのをやめました。今、私は CodeIgniter を使用していますが、うまくいきます!

4

1 に答える 1

2

実際、それが通常のセッションのやり方です。ページが読み込まれると、ブラウザとサーバーの間に接続がなくなります。基本的に、ページの読み込みが完了してブラウザーに表示されると、ユーザーがウィンドウを閉じたときと同じになります。

ユーザーがまだ「オンライン」であるかどうかを 100% 確実に検出する方法はありません。そのためにはJavascriptに一定のハートビートを送信させる必要がありますが、これでもタイムアウトになります。一定時間ユーザーに会っていない場合は、そのユーザーがオフラインであると想定して、セッションを削除します。できることはそれだけです。

于 2013-04-18T06:02:07.197 に答える