У меня проблема с Internet Explorer, которую я действительно не понимаю, и, как вы уже догадались, это с IE в его последней версии.
Ситуация очень простая. Я установил файл cookie, отобразил его, затем сбросил, а затем отобразил «нет cookie».
С тремя простыми страницами:
setcookie.php
<?php
setcookie('test','test value 2', (time()+60*60*24*30), '/', '.mydomain.com');
?>
unsetcookie.php
<?php
unset($_COOKIE['test']);
setcookie('test','unset value', (time() - 3600 ), '/', '.mydomain.com');
?>
test.php
<?php
if(isset($_COOKIE['test'])){
$test = 'cookie value ==> '.$_COOKIE['test'];
}else{
$test = 'no $$$$$$ cookie';
}
echo $test;
?>
Итак, простая процедура:
1 / открыть setcookie.php
2 / открыть test.php (во всех браузерах отображается «cookie value ==> test value 2»)
3 / открыть unsetcookie.php
4 / снова откройте test.php
Затем Chrome, Safari и т. Д. Отображает «нет $$$$$ cookie», НО IE отображает «значение cookie ===> unset value»
И я хочу, чтобы он отображался как другие … Я попытался установить значение NULL в качестве значения, я попытался установить время на 0, -1. Я пытался сбросить после того, как установлен cookie и т.д. … ничего не меняет …
Так что я сейчас немного отчаялся и очень расстроен тем, что cookie-код находится на стороне сервера, так как это возможно, что IE неправильно прочитал этот материал ???
Я знаю, что мне удалось проверить значение cookie, чтобы проверить, не было ли оно установлено, но я не так сделал свой код, и это повлечет за собой много глупых изменений …
Спасибо за вашу помощь !
Технически говоря, удаление неиспользуемых куки-файлов остается на усмотрение браузера. Обычно, когда cookie истекает, у него истекает время или он имеет нулевое значение, он автоматически удаляется браузером, а не сервером. Это, как говорится, вместо:
setcookie('test','unset value', (time() - 3600 ), '/', '.mydomain.com');
Вы должны иметь это:
setcookie('test',null , (time() - 36000 ), '/', '.mydomain.com');
В котором время истечения срока действия cookie значительно увеличено, и значение равно нулю. Честно говоря, поскольку сервер не решает, какие куки сохранять и какие удалять (скорее, чтобы браузер ДОЛЖЕН был удалить куки), вы должны выполнять проверку значений, а не проверять, установлены ли куки. Если вы хотите удалить куки, установите его значение на то, что вы можете легко распознать. Вот пример:
Выйти:
//I want to remove the cookie
setcookie('test','idontwantthisanymore',(time() - 3600), '/', '.mydomain.com);
Страница для проверки статуса входа в систему:
if(!isset($_COOKIE['test']||($_COOKIE['test']=="idontwantthisanymore")) {
echo 'no cookie';
} else {
echo 'cookie';
}
Других решений пока нет …