Почему куки удаляется только со второго раза?

Пилю на сайте модуль пользователей. При входе через форму, если юзер найден, его данные загружаются в сессию, а если отмечено "запомнить меня", часть данных записывается и в Cookies. Потом, если сессии нет, движок пытается найти этот куки и авторизоваться через него.

Проблема вот в чём: все браузеры на Windows отлично работаю с входом/выходом, но вот браузер для Android - UC Browser - почему-то совершенно не хочет ни удалять сессию, ни удалять Cookie при первом нажатии на кнопку Logout. При втором нажатии всё удаляется (между двумя нажатиями могут быть даже переходы по страницам сайта, или даже закрытие браузера).
Как такое может быть??

Вот код удаления куков:
if(isset($_GET['logout'])) // Logout if there was such command
{
session_destroy();
setcookie('userdata', '', time()-3600);
header("Location: $ref"); // Go to entry page
exit;
}


(То есть задумка такова, что при запросе адреса /login.php?logout - удаляется и сессия, и куки, после чего идёт переадрессация на страницу, с которой запросили выход)
  • Вопрос задан
  • 2592 просмотра
Пригласить эксперта
Ответы на вопрос 3
@maxloyko
если вы удалили сессию и у вас идет проверка соответствующая в коде, то смело могу предположить что броузер ходит по кешу, а почему он не удаляет куку, мб баг какой хз.
Ответ написан
Скорее всего, в первом случае выкидывается ошибка уровня notice или warning, которую вы не видите. Ну или любой другой header отправляется. setcookie обязана быть вызвана до любых заголоков.
Ответ написан
Audiophile
@Audiophile Автор вопроса
Внезапно всё решилось удалением сессионной Cookie через setcookie 'PHPSESSID".
Теперь сижу думаю, почему нормальные браузеры без этого работают, а UC - ни в какую.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы