0

私の「ログイン」コード

$query = mysql_query("SELECT * FROM trade2_users WHERE email = '".mysql_real_escape_string($_POST['email'])."' AND pass = '".mysql_real_escape_string($_POST['password'])."'");
if(mysql_num_rows($query) > 0){
$row = mysql_fetch_assoc($query);
session_start();
$_SESSION['name'] = $row['name'];
header("Location: index.php");
}

私の「ログアウト」コード

session_start();
session_destroy();
header("Location: log_in.php");

なんらかの理由で、ログアウト コードが機能していません (セッションを実際に破壊しているわけではありません)。$_SESSION['name'] は、ログアウト スクリプトの実行後も設定されています。

4

3 に答える 3

2

使ってみてください:

session_unset();
header("Location: log_in.php");
于 2013-08-02T04:44:25.793 に答える
1

ドキュメントから

ユーザーをログアウトするなど、セッションを完全に強制終了するには、セッション ID も設定解除する必要があります。Cookie を使用してセッション ID を伝達する場合 (デフォルトの動作)、セッション Cookie を削除する必要があります。そのために setcookie() を使用できます。

同じページの例 #1は、何をすべきかを正確に示しています。

于 2013-08-02T04:44:58.257 に答える
0

I typically over-write the values instead of trying to remove the session.

foreach($_SESSION as $key => $value) {
    unset($_SESSION[$key]);
}
于 2013-08-02T04:59:28.893 に答える