#php #cookies
#php #файлы cookie
Вопрос:
У меня возникли проблемы с тем, чтобы мой код игнорировал загрузку файла cookie с истекшим сроком действия.
Когда я регистрирую пользователя, который хочет, чтобы его запомнили, я устанавливаю файл cookie следующим образом…
setcookie('mysiteCookieBlah', $token, $expiry, '/', 'https://www.mysite.com', 1, 1);
Всякий раз, когда они обновляют страницу, если они не вошли в систему, т.Е. У них нет идентификатора пользователя в сеансе, я затем проверяю наличие файла cookie, чтобы узнать, должен ли я инициализировать их автоматическую регистрацию…
if(isset($_COOKIE['mysiteCookieBlah']))
$intiAutoLogin=true;
else
$intiAutoLogin=false;
Когда они выходят из системы, у меня истекает срок его действия…
unset($_COOKIE['mysiteCookieBlah']);
setcookie('mysiteCookieBlah', "", time()-3600, '/', 'https://www.mysite.com', 1, 1);
При следующем обновлении страницы,
if(isset($_COOKIE['mysiteCookieBlah']))
$intiAutoLogin = ?
должно = false, верно? На данный момент он видит файл cookie каждый раз, независимо от того, истек ли срок его действия.
Спасибо, что взглянули.
Комментарии:
1.
if(isset($_COOKIE['mysiteCookieBlah']) amp;amp; !empty($_COOKIE['mysiteCookieBlah'])) {....
?2. Чтобы убедиться, что срок действия файла cookie истек, вы можете сохранить истекшее время на стороне сервера.
3. Спасибо, ребята. После добавления amp;amp; !empty($_COOKIE[‘mysiteCookieBlah’]) он по-прежнему запускает $intiAutoLogin=true . Я сохраняю и проверяю срок действия в базе данных, но я не хочу запускать базу данных, если срок действия самого файла cookie истек. Я протестировал еще несколько, и, похоже, файл cookie не перезаписывается. Я тоже попытался установить новый файл cookie, но он тоже не записывается, поэтому я изучу еще немного. К вашему сведению, это тоже AJAX-запрос. Приветствия.
Ответ №1:
Я изменил свой код cookie для выхода из системы на
setcookie("mysiteCookieBlah", "", time()-3600, '/');
и это сработало. Я понятия не имею, почему.