ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用してメンバー アカウントが 2 つの場所に同時にログインできないようにする方法

PHP を使用してメンバー アカウントが 2 つの場所に同時にログインできないようにする方法

WBOY
リリース: 2016-06-23 13:34:32
オリジナル
991 人が閲覧しました

Xiao Wang が場所 A のアカウントにログインし、Xiao Chen が場所 B のアカウントにログインすると、Xiao Wang のコンピューターの場所 A にプロンプ​​トが表示されます: あなたのアカウントは別の場所でログインしています。 Xiao Wang ログイン アカウントは自動的に強制的にオフラインになりました。
どのような方法を使用する必要がありますか?


ディスカッション (解決策) に返信

ログイン???ログイン???IP に基づいて場所を特定します。
ログイン アドレスが前回のログイン アドレスと異なり、最終ログイン時刻が特定の場所である場合、Web サイト情報システムを通じて最終ログインのユーザー名が要求され、ユーザーがダウンロードされます。

サイトのログイン フォームを使用するたびに、ログインに成功すると、データベース ユーザー テーブル内のユーザー データが新しいキー (いくつかの条件に基づいてランダムに生成された文字列) で更新され、Cookie に書き込まれます。

サイト内のすべてのページは、更新されるたびに検証されます。Cookie の値がデータベース テーブル内のキーの値と比較されます。等しくない場合は、Cookie をクリアして追い出します。

これは IP に基づいてのみ判断できます

ログインであるため、ユーザー テーブルをチェックする必要があります
ログイン ステータスを保存するフィールドをユーザー テーブルに追加します

ユーザーの正当性をチェックする場合は、ログイン ステータスをチェックします同時に。すでにログインしている場合は、再度ログインすることはできません

ログインしているユーザーが積極的にログアウトしない場合、管理者は必要に応じて強制的にリセットします

データベースを使用して、ユーザー自身でセッションを管理しますIDフィールド。ログイン後、同じIDがライブラリ内にある場合は、再ログインとなります。どのセッションが削除され、どのユーザーがオフラインになるか。

ユーザーテーブルにこのオンラインフィールドを設定します。ログイン時にこのフィールドを確認します。

ログインステータスを決定します。すでにログインしている場合は、ステータスを 1 に変更します。この時点で、ログイン時に 1 が 2 つ表示されます。競合がある場合は、唯一のログイン (ブラインド フラップ) を実現できます。

ログイン時に一意の文字列を生成できます。たとえば、現在のタイムスタンプはデータベースに記録され、セッションごとに記録されます。ページを操作すると、ユーザーがログインしているかどうかを判断しながら、こちらも判断し、文字列が異なる場合は、別の場所でログインするよう促します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート