ユーザーを含むMYSQLテーブルがあります。ユーザーはPHPコードを使用してログインできます。それらの名前はSESSION変数に格納されます。ユーザーがすでに別のコンピューターにログインしているかどうかを確認して、再度ログインすることを禁止するにはどうすればよいですか?
シナリオ:
コンピューター1:
USER1がログインしている
コンピューター2:
USER1は再度ログインを試みますが、すでに別のコンピューターにログインしているため、ログインできません。
ユーザーを含むMYSQLテーブルがあります。ユーザーはPHPコードを使用してログインできます。それらの名前はSESSION変数に格納されます。ユーザーがすでに別のコンピューターにログインしているかどうかを確認して、再度ログインすることを禁止するにはどうすればよいですか?
シナリオ:
コンピューター1:
USER1がログインしている
コンピューター2:
USER1は再度ログインを試みますが、すでに別のコンピューターにログインしているため、ログインできません。
データバンクに「isLogged」列を作成し、ユーザーがセッションを開始または終了するときに true または false に設定してみてください。私はそれをやっていて、うまくいきました。
彼が別のコンピューターに再びログインしないようにするには、データベースに対してフィールドを更新して、彼がログインしていることをマークし、ユーザーがログインしようとしたときにこのフィールドを確認します。
<?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 に設定することができます。
順番に:
$_SESSION["UserName"]
、ユーザー名に設定されます。