Michaelという名前のユーザーがregisteredで、データベースのusersという名前のテーブルにあるとします。
Michael が私のサイトを閲覧している間、私はテーブルから彼のユーザーを削除します。私のログインシステムはセッションで動作します。
ユーザー Michael がデータベースから削除された後、ブラウザーはセッションが終了するまで "Michael" で Web サイトを閲覧できます。
セッションが処理された後は、毎回確認しない限り変更されないためです。
クエリ/リクエストが多すぎるためにエンジンの負荷が大幅に増加する可能性がある私のソリューション:
session.inc.php にチェッカーを追加します。
if (isset($_SESSION['user']))
{
$check = $pdo->prepare("SELECT * FROM users WHERE user_name = :user")
$check->execute(array( ":user" => $_SESSION['user']));
if (!$check->rowCount())
{
session_destroy();
}
}
セッションで現在ログインしているユーザー名とまったく同じ行があるかどうかを確認し、そうでない場合はセッションを破棄します。
質問:
私の Web サイトが多くのブラウジング ユーザーを獲得した場合、そのソリューションは大きなエンジン負荷を引き起こしますか?
これを行うより良い方法はありますか?