0 レビュー
1 回答
php-なぜ私のクッキーが消えないのですか? **アップデート**
次のように認証Cookieを設定しています:
$identifier = $this->createIdentifier($username);
$key = md5(uniqid(rand(), true));
$timeout = time() + 60 * 60 * 24 * 100;
setcookie('auth', "$identifier:$key", $timeout);
ログアウト後、次のようにして無効にしようとしています:
setcookie('auth', "", time() - 3600);
ログアウト後に制限されたページを表示しようとすると、Cookieが存在するかどうかを確認しています:
if (isset($_COOKIE['auth'])) {
error_log("COOKIE EXISTS: " . print_r($_COOKIE, true));
}
これが私のログアウトスクリプトです:
if(!isset($ _ SESSION))session_start();
$ ref = "index.php";
if(isset($ _ SESSION ['username'])){
unset($ _ SESSION ['username']);
session_unset();
session_destroy();
//認証Cookieを削除します
{-コード-2}
}
header( "Location:"。$ ref);
出口();
私はこのコードをヒットするべきではありませんが、私はヒットしています。ログアウトすると、ブラウザからCookieが削除されたことがわかります。ログアウトした後、どのようにして再びそれを見つけるのか、何か考えはありますか?
更新 このコードは、ユーザーのプライバシーなどをチェックする別のクラスから呼び出されます。このコードが機能しないファイルは、上の1つのディレクトリからコードを参照するファイルだけです。たとえば
このように参照しているファイルはすべて問題なく機能します:
<?php include_once('classes/check.class.php');
そのように参照しているファイルは機能しません:
<?php include_once('../classes/check.class.php');
これを引き起こしている可能性のある考えはありますか?
わからない
0
レビュー
答え :
解決策:
ユーザーをログアウトした後、リダイレクトを実行して新しいページをロードする必要があります。新しいリクエストが行われるまでCookieはページリクエストとともに送信されるため、Cookieを「削除」した後もCookieは存続します。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。