ホームページ >バックエンド開発 >PHPチュートリアル >PHPを使用して管理者のみにログインを許可する方法と、現在の管理者アカウントがすでにログインしている場合、他の人はログインを許可されません。

PHPを使用して管理者のみにログインを許可する方法と、現在の管理者アカウントがすでにログインしている場合、他の人はログインを許可されません。

WBOY
WBOYオリジナル
2016-10-22 00:14:121170ブラウズ

PHPを使用して管理者のみにログインを許可し、現在の管理者アカウントがログインしている場合、他の人はログインできないようにする方法! !アドバイスを求めています

返信内容:

PHPを使用して管理者のみにログインを許可し、現在の管理者アカウントがログインしている場合、他の人はログインできないようにする方法! !アドバイスを求めています

ログインが成功すると、ログイン時間、返信情報の有効期限、その他の情報を含むレコードがデータテーブルにすぐに挿入されます。2 人目のユーザーがログインすると、データベースが検証のためにチェックされます。

2 つの int フィールド。最初のフィールドはログイン タイムスタンプを記録します。2 番目のフィールドはログアウト タイムスタンプを記録します。現在時刻がログアウト タイムスタンプよりも大きい場合は、現在誰もログインしていないことを意味します。以前にログインしたユーザーがログアウトしていない場合、セッション内のキーの有効期限が切れているかどうかを確認します。有効期限が切れている場合は、前のユーザーが再度操作したい場合は再度ログインする必要があります。このとき、別の人もログインできます。明確にできたかどうかはわかりません

オンラインフィールドを使用して現在のユーザーステータスを記録します

管理者のみが管理できます。アカウント情報を設定するか、コードに直接記述するだけです。

の前の管理者アカウントが既にログインしている場合、他の人はログインできません

私が言いたいのは、同じアカウントは同時に 1 つの場所にしかログインできないということです。

上記の 2 人が示した解決策を検討しました。 1 つは有効期間を設定することですが、これでは別の場所で「同時に」ログインする問題は解決できません。

2 つ目は、ログアウト時間を記録することです。重要なのは、それをどのように記録するかです。

リアルタイム性を確保したい場合は、ソケットを使用する必要があります

それほど厳密でない場合は、スケジュールされたアクセスを使用できます。

redis は、userId:sessionKey のキーと値のペアを保存します。各リクエストは、現在のユーザー ID に対応する sessionId が現在のセッションと一致しているかどうかを確認します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。