#この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューターphp により、ユーザーは繰り返しログインできなくなります まず、セッションのいくつかの設定を理解しましょう:PHP で繰り返しログインを禁止する方法: 1. 現在開いているブラウザ セッションの ID を取得します; 2. データベース内の session_id が現在の session_id と等しいかどうかを確認します。等しくない場合は、をクリックして再度ログインします。
ini_set('session.auto_start',0);セッションの自動開始をオフに設定します
ini_set('session.cookie_lifetime',0);ブラウザを閉じたときにセッションが無効になるように設定しますデフォルトではセッションはこのようになっており、設定する必要はありません
ini_set('session.gc_maxlifetime',3600);ブラウザが閉じていないときのセッションの継続時間を設定します上記の設定についてはご存知かと思いますので、理解していきましょう今日の内容。ユーザーがアカウントにログインするたびにブラウザが開き、session_id が自動的に生成され (有効期間内で一意)、この一意の ID がユーザー テーブルに保存されます (現在のセッションはログインするたびに更新されます)。アカウント ユーザー テーブルの session_id の値)。このようにして、ログイン後のすべてのインターフェイスは、現在のブラウザの session_id() がデータベースのユーザー テーブルの session_id と一致しているかどうかを判断する必要があります。一致していない場合は、現在のアカウントがオンラインであることが示され、彼のログインを拒否するには、再度ログインする必要があります。 (つまり、一度にログインできるユーザーは 1 人だけです。後でログインするユーザーは、以前にアカウントにログインしたユーザーを排除します) 詳細については、コードを見てみましょう: (このツイートのコードに関係のない他のコード、詳細は説明しません) 最初のボックス: 現在開いているブラウザ セッションの ID を取得します。そして、データベース内の唯一の session_id の次の挿入と更新の準備をします
2 番目のボックス: データベース内の session_id が現在の session_id と等しいかどうかを確認します。等しくない場合は、現在の session_id を更新します。等しい場合は、フロントエンドに直接 3 を返します ajax
index.php インターフェイスでは、このボックスは現在の session_id() が次と等しいかどうかを示します。データベースの session_id。そうでない場合は、現在のアカウントがすでにログインしていて、session_id が等しくないことを意味するため、もう一度ジャンプする必要があります。ログインします。 推奨学習: 「
PHP ビデオ チュートリアル 」
以上がPHPで重複ログインを禁止する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。