0

Cookie を削除したいのですが、うまくいきません。

これがコードです、何かアイデアはありますか?

    setcookie("candidate_site_search", serialize($model->getAttributes()), strtotime('next year'), '/');

    if (isset($_GET['clearFilters']) && ($_GET['clearFilters'] == 1)) {
        //die('cf');
        $model->unsetAttributes();
        setcookie("candidate_site_search", serialize($model->getAttributes()), time() - 60 * 60 * 24 * 30);
        if (isset($_COOKIE['candidate_site_search']))
            unset($_COOKIE['candidate_site_search']);
        if (isset($_COOKIE['site_search']))
            unset($_COOKIE['site_search']);
        $this->redirect(array('/candidate/search'));
    }

削除後、リクエストの送信元と同じ URL にリダイレクトします。

まだ何も起こらない

追伸: このクッキーはチャック・ノリス、または少なくともスーパーマンに関連していると思います...

4

1 に答える 1

2

問題は、クライアントの時間に関連してサーバーに設定した日付/時間にある可能性が最も高い.

たとえば、サーバーが GMT+2 でクライアントが GMT の場合、上記のコードはクライアントに GMT+1 で Cookie を期限切れにするように指示しますが、これはクライアントにとってまだ先のことです。

過去にさかのぼる時間を使用するだけで、タイムゾーンの問題を排除できます。

setcookie("name_of_cookie", "", time() - 60 * 60 * 24 * 30); // should  do it
于 2013-03-18T08:05:32.923 に答える