2

この Cookie を削除できないのはなぜですか?

ユーザーがログインすると、authenticate_user() が実行されます。ユーザーがログアウトすると logout() が実行されます。クラスが実行されると、update_status() によってステータスが生成されます。

ステータス Cookie を強制終了するにはどうすればよいですか? 何を試しても存在し、ユーザーはログアウトできません。

[コードが削除されました]

解決しました。

Cookie を削除するときは、Cookie がアクセスできるディレクトリを指定する必要があります。

Not Deleted
setcookie("status", "", (time()+3600), '/');
setcookie("status", "", (time()-3600));

Deleted
setcookie("status", "", (time()+3600), '/');
setcookie("status", "", (time()-3600), '/');
4

3 に答える 3

1

ステータスはセッション Cookie ですか? もしそうなら、$_COOKIE['status']存在しません。

session_destroy()ただし、最初にページの上部にあることを確認してくださいsession_start()(これがおそらく、セッションが機能しないという問題を抱えている理由です)。

于 2010-12-16T11:24:40.993 に答える
0

代わりにこれを試してください...

setcookie("status", "", time()-3600, "");
于 2010-12-16T11:30:13.210 に答える
0

これは少しグレーな領域です。

最初に注意すべきことは、有効期限を 1 時間前に設定して cvookie を削除しようとしているということですが、スクリプトはどのタイム ゾーンで実行されているのでしょうか。そして、クライアントはどのタイムゾーンにいますか?

また、有効期限がその後過去の日付に設定されている場合に、ブラウザーが Cookie に固執することによって説明されるように見える動作を見てきました (過去の長い時間- タイムゾーンの問題ではありません)。

Cookie の単なる存在は、認証の証拠として扱われるべきではありません。これは、サーバー側に保存されたデータへのハンドルでなければなりません。したがって、解決策は、有効期限を変更せずに、Cookie の VALUE を意味のない値に上書きすることです。

于 2010-12-16T11:32:27.980 に答える