2

ユーザーをログアウトするスクリプト (logout.php) があり、FF と IE では問題なく動作しますが、Chrome ではブラウザを閉じた後でも Cookie を利用できます。

このコードでテストしました:

logout.php

session_start();
$_SESSION['un'] = '';
$_SESSION['pw'] = '';
unset($_SESSION['un']);
unset($_SESSION['pw']);
setcookie("spf", "", time()-3600);
session_destroy();
echo "Cookie: ".$_COOKIE['spf']."<br />";
echo "Session: ".$_SESSION['un'];

Chrome では、すべてにもかかわらず、spf のコンテンツがエコーアウトされます。私は何を間違っていますか?

編集:

FF では、私のテストページはこれをエコーし​​ます:

Cookie: 

Session:

(例: 両方を空白)。

Chrome では次のように表示されます。

Cookie: {\"un\":\"test3333\",\"pw\":\"593c114983263124656dd6bb922b7bd8\"}

Session:

(たとえば、Cookie にはコンテンツがあり、セッションは空白です)。

4

2 に答える 2

0

あなたが試すことができます:

$_SESSION=array(); // assign an empty array to the session

また

session_unset();     // unset $_SESSION variable for the run-time, frees all session variables currently registered.  

情報

その後 :

session_destroy();   // destroy session data in storage

注: session_destroy() は、現在のセッションに関連付けられているすべてのデータを破棄します。セッションに関連付けられたグローバル変数の設定を解除したり、セッション Cookie を設定解除したりすることはありません。セッション変数を再度使用するには、session_start() を呼び出す必要があります。

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

撮影元: 情報

アップデート:

次に、これが必要だと思います。spfはCookieの名前であることに注意してください

setcookie ("spf", "", time() - 3600);

配列の場合は、名前を spf[one] に変更します。例:

setcookie ("spf[un]", "", time() - 3600);

ここを見てください

于 2013-06-02T15:06:07.423 に答える