#php #cookies
#php #файлы cookie
Вопрос:
Файл cookie не устанавливается на моем компьютере. Он работает локально, но не в реальном времени. Я хочу, чтобы файл cookie существовал только в течение 20 минут. Единственная причина, по которой я могу думать о том, что это не сработает, заключается в том, что сервер находится в штатах. Я на x часов впереди. Таким образом, время установки cookie-файла уже истекло. Это правильно?
setcookie($cookiename, $cookie, time() 1200);
Если серверное время 6 утра, а мое время 12 вечера. Будет ли установлен срок действия файла cookie в 6:20 утра или 12:20 вечера?
Если это первое, как мне установить время истечения срока действия cookie на основе местного времени пользователя? Если это будет позже, я сделаю еще несколько попыток устранения неполадок в понедельник.
Комментарии:
1. Это легко отлаживать:
echo time();
Ответ №1:
В прошлом у меня была похожая проблема, мне всегда давали совет убедиться, что срок действия файлов cookie (если они установлены в разных часовых поясах) составляет не менее 25 часов. Это позволяет любому в любом месте использовать cookie. Во многих случаях недопустимый файл cookie = нет доступа = большое дело.
Современные вычисления зарезервировали для этого, и синхронизированное время гарантирует, что файлы cookie всегда будут установлены по местному времени пользователя. Тем не менее, исключения еще предстоит найти.
20 минут — это очень короткое время для включения cookie, рассмотрите возможность его увеличения. Если файл cookie по-прежнему не установлен локально, я бы предположил, что ваш браузер заблокировал входящие файлы cookie с сервера.
Ответ №2:
Функция time () получит время сервера, но я считаю, что файлы cookie используют время GMT.
Самый простой способ получить общее время из PHP — использовать:
<?php
$gmtime = gmdate('U');
?>
Итак, вы бы установили файл cookie следующим образом:
setcookie($cookiename, $cookie, gmdate('U') 1200);