1

ユーザーを含むMYSQLテーブルがあります。ユーザーはPHPコードを使用してログインできます。それらの名前はSESSION変数に格納されます。ユーザーがすでに別のコンピューターにログインしているかどうかを確認して、再度ログインすることを禁止するにはどうすればよいですか?

シナリオ:

コンピューター1:
USER1がログインしている

コンピューター2:
USER1は再度ログインを試みますが、すでに別のコンピューターにログインしているため、ログインできません。

4

2 に答える 2

1

データバンクに「isLogged」列を作成し、ユーザーがセッションを開始または終了するときに true または false に設定してみてください。私はそれをやっていて、うまくいきました。

于 2012-12-05T16:22:43.360 に答える
0

彼が別のコンピューターに再びログインしないようにするには、データベースに対してフィールドを更新して、彼がログインしていることをマークし、ユーザーがログインしようとしたときにこのフィールドを確認します。

<?php

if ($_SESSION["MySession"] != "") {
  //Update database field to set this user as actively browsing. 
  //Also set a timestamp so you know when he last visited a page.
}

?>

ただし、ユーザーは別のコンピュータで物理的にログアウトして、新しいコンピュータで再度ログインする必要があります。データベースのフィールドをクリアするタイマーを実装して、一定時間非アクティブになった後にログインできるようにすることもできます。

cron を作成して 5 分ごとに実行するか、ページの上部でコードを再度実行しuser_logged_inて、過去x数分間アクティブになっていないすべてのフィールドを false に設定することができます。

順番に:

  1. ユーザーは Web サイトにログインし$_SESSION["UserName"]、ユーザー名に設定されます。
  2. 各ページの上部で、セッションをチェックして、ユーザー名セッションが有効かどうかを確認し、データベース内のユーザー テーブルを更新して、(タイムスタンプ フィールドを使用して) 彼がアクティブにブラウズしていることを示します。
  3. ユーザー テーブルを確認し、ユーザーが X 分間非アクティブだったすべてのログイン フラグをクリアします。
于 2012-12-05T16:17:31.487 に答える