Internet Explorer не сбрасывает cookie даже с php кодом

У меня проблема с 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, чтобы проверить, не было ли оно установлено, но я не так сделал свой код, и это повлечет за собой много глупых изменений …

Спасибо за вашу помощь !

0

Решение

Технически говоря, удаление неиспользуемых куки-файлов остается на усмотрение браузера. Обычно, когда 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';
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]