この記事の例では、現在のユーザーが別の場所にログインしていることを PHP がどのように判断するかを説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
主なアイデアは次のとおりです:
1. ログイン時に、ユーザーのセッションIDを記録します
2. ログインを検証する際、記録されたユーザーのセッションIDと現在のセッションIDを照合します
3. 同じでない場合は、別の場所でログインしてください
ここをクリックして、この Web サイトから完全なサンプルコードをダウンロードしてください。
まず、http://localhost/login_single/index.php にアクセスしてログインステータスを確認します。
Index.php ページのコードは次のとおりです:
header("コンテンツタイプ: text/html; charset=utf-8");
//セッションでユーザー情報を取得します
$ユーザー名=$_SESSION['ユーザー名'];
//有効かどうかを判断する
if(!isset($ユーザー名)){
echo "ログインしていません!ログイン";
exit();
}
//ログイン時に保存されるユーザーのセッションID
$sessin_id=file_get_contents('session_id/'.$username);
//現在のセッションIDが以前に記録されたセッションIDと一致しない場合
// 他の場所でログインしていることを示します
if(session_id() != $sessin_id){
// 現在のユーザーをログアウトします
unset($_SESSION['ユーザー名']);
echo "他の場所でログインしています!再度ログイン";
exit();
}その他{
echo "ようこそ:".$username;
echo " ログアウト";
}
echo "
--これはログイン後に表示される内容です--
";ログインしていないユーザーの場合は、http://localhost/login_single/login.html ログイン ページにジャンプするように求められます。login.html ページのコードは次のとおりです。