Вы вызываете эту функцию до вывода какого-либо 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 не будет создан - тот, который у вас есть, который не был изменен или истек, может быть оставлен из предыдущего успешного варианта вашего кода.