что может быть причиной того, почему печенье не будет уничтожено? - PullRequest
1 голос
/ 23 мая 2009

У меня есть файл cookie с именем MVCID, который установлен, и его значением является некоторый сгенерированный хэш. когда я пишу это

setcookie("MVCID","", time()-60*60*24); 

и загрузите страницу, содержимое куки не только не удаляется, но и не умирает.

в чем может быть возможная проблема? это не первый раз, когда это происходит.

ps: я также пробую это на пустой странице без другого кода, кроме этого, и он все равно не умрет.

Ответы [ 3 ]

1 голос
/ 23 мая 2009

Попробуйте передать "/" в качестве четвертого параметра - path .

0 голосов
/ 23 мая 2009

Используйте что-то вроде firebug или fiddler для проверки фактических заголовков ответа (как того, который содержит «настоящий» cookie, так и того, который содержит «delete» cookie)

0 голосов
/ 23 мая 2009

Вы вызываете эту функцию до вывода какого-либо HTML? Это известная проблема, поскольку в заголовке HTTP должны появляться файлы cookie.

Возможно, вы также захотите проверить время на стороне клиента. Даже если вы устанавливаете время истечения одного дня назад, возможно, что перекос часов может быть больше (если время не установлено правильно).

И я предпочитаю заполнять все параметры, а не полагаться на значения по умолчанию (которые могут меняться в зависимости от многих вещей).

Кроме того, вы можете проверить код возврата, хотя я понятия не имею, как он может выйти из строя, например:

<code><?php
    $ret = setcookie("MVCID","", time()-60*60*24);
?>
<html>
    <head></head>
    <body>
        Hello<br>
        <pre>
            <?php
                print_r ($ret);
            ?>
        

В противном случае вам, возможно, придется взглянуть на то, что происходит на уровне проводов. Другими словами, проверьте ответ HTTP, чтобы убедиться, что в заголовках HTTP есть Set-Cookie, и проверьте фактические значения, передаваемые вместе с ним.

И последний трюк, который стоит попробовать: полностью удалить cookie и выйти из браузера (некоторые из них кешируются в памяти). Тогда попробуйте еще раз. Если setcookie PHP не работает, то файл cookie не будет создан - тот, который у вас есть, который не был изменен или истек, может быть оставлен из предыдущего успешного варианта вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...