0

ログインする前に、ユーザーの以前のセッションを強制終了しようとしています: 詳細なコンテキストでは、ユーザーが異なるブラウザーまたは場所で同じユーザー名/パスワードを使用してサインインするのを防ぎ、セッション状態を操作できないようにしたい (ゲーム)、ブラウザ間で。

これまでに行ったことはありますが、成功していません

2) 次のコードを使用して、最後のセッションの削除を試みます。

session_id($old_session_id);
session_start();
session_destroy();

3) session_start() を使用して、ユーザーの新しいクリーンなセッションを開始しようとします。

私が見ているのは、新しいセッションが開始されていないことです-ユーザーは両方のブラウザでログアウトしています

どんな助けでも大歓迎です!

4

4 に答える 4

0

セッションはブラウザにのみ保存されるため、ユーザーが他のブラウザにすでにログインしているかどうかを確認したい場合は、データベースを使用する必要があります

ステータスが 1 または 0 の行をデータベースに追加します

1 = 「オンライン」;

0 = 「オフライン」;

ログインページでユーザーステータスを確認してください

$query=mysql_query("select status from table_name were username=$_POST['username']");
$status=$query['status'];
if($status == 1)
{
redirect him to a page saying the account is already logged in
}else
{
let him in and update the database status = 1
}

ログアウトページでユーザーステータスを0に更新して、彼をオフラインにします

すべてのセッションを削除したいだけの場合は、最初にセッションを使用してから破棄してから、セッションを再度開始してください。セッションを開始せずにセッションを破棄することはできません

session_start();
session_destroy();
session_start();

ただし、特定のセッションを削除する場合は、使用する必要があります

unset($_SESSION['sessionname']);
于 2013-10-16T20:06:41.653 に答える