Поэтому у меня есть этот код на моем index.php:
<?php if(isset($_POST['cookie'])) { setcookie("RememberMe", "Yes", time()+1209600); } ?>
Если пользователь проверил ящик «Запомнить меня», он установит файл cookie с именем RememberMe в течение 2 недель. Эта часть работает нормально.
Теперь проблема, с которой я сталкиваюсь, это удаление этого файла cookie, когда они выходят из системы.
При нажатии на выход они перенаправляются на logout.php, который имеет следующий код:
<?php include_once('config.php'); include_once('functions.php'); unset($_COOKIE['RememberMe']); setcookie("RememberMe", "", time()-3600); $_SESSION = array(); session_destroy(); ?> <meta http-equiv="refresh" content="0;../index.php">
с<?php include_once('config.php'); include_once('functions.php'); unset($_COOKIE['RememberMe']); setcookie("RememberMe", "", time()-3600); $_SESSION = array(); session_destroy(); ?> <meta http-equiv="refresh" content="0;../index.php">
но по какой-то странной причине, которая не удалит куки? Есть идеи о том, почему?
Вы можете проверить правильность пути, в котором установлен cookie. По умолчанию PHP задает путь cookie к каталогу, в котором он установлен, и он будет недоступен (и не может быть удален) из разных мест.
Несколько советов:
$_COOKIE
и $_SESSION
вместо перенаправления с использованием перенаправления метатега с заголовками HTTP:
header('Location: /index.php'); // or whatever is the path you want to redirect to
Не самый чистый, но проверьте правильность часового пояса. Убедитесь, что вы нажимаете правильный файл cookie (с учетом регистра). В противном случае все они над написанием файла cookie будут уничтожать его так или иначе. Итак …
Setcookie ('mycookie') // запускает куки-файл с пустой записью
Отмена файлов cookie иногда может требовать того же значения времени, что и они были установлены.
setcookie("RememberMe", "", time()-1209600);
удалите эту строку
unset($_COOKIE['RememberMe']);