0

私が取り組んでいる現在のプロジェクトでは、マルチログインを防ぐことにしました。これを行うには、ユーザーがWebサイトにログインするときにSQLテーブルにレコードを挿入し、ログアウトするときにそのレコードを削除します(session_endメソッドを使用します)これを行うため)

ここに問題があります:セッションタイムアウトを10分に設定したので、この戦略を使用して、ユーザーが再度ログインするためにブラウザーを閉じるとき、ユーザーは1〜10分待つ必要があります(SQLテーブルに次のようなレコードがあるため)最大10分後にsession_endメソッドで削除し、ユーザーが再度ログインできないようにします)。

この問題で私を助けるためにそこに何か体がありますか?すべてのアイデアは役に立つことができます

私の悪い構文について申し訳ありませんが、私は英語が初めてです。詳細についてはコメントしてください

よろしく、アリForoughi

4

1 に答える 1

0

ユーザーが誤ってブラウザを閉じたり、ブラウザがクラッシュしたり、コメントがあったり、サーバーに問題が発生したりした場合、ユーザーが再度ログインするには10分待つ必要があるとの理由で、セッションタイムアウトを使用して複数のログインを防ぐことはしません。接続レコードはデータベースに残ります。また、知らないうちにセッション時間の設定を1分または1時間に変更してしまう可能性もあります。

私は数年前に、ユーザーごとの接続のみを持つという要件を追加するシステムに参加しています。最後のログインを有効なものと見なすシステムを設計しました。また、接続がまだアクティブであるかどうかを確認するためにセッションタイムアウトを使用しないことにしました。ユーザーがWebサイトでアクションを実行するたびに、データベース内の値ストアを使用して最後にアクションを実行した時刻を確認し、現在の時刻と比較します。差が最大非アクティブ値(10分など)を下回った場合、システムは値を現在の時刻に更新し、続行するか、タイムアウトページにリダイレクトできるようにします。このソリューションにより、複数のログインが防止され、多くの問題が発生することも防止され、ユーザーはWebサイトに再接続するのを待つ必要がありませんでした。

于 2012-08-16T14:18:59.847 に答える