#php #cookies #uuid
#php #файлы cookie #uuid
Вопрос:
У меня есть веб-сайт, который генерирует uuid каждый раз, когда страница загружается / обновляется. Я хочу сделать так, чтобы определенное значение оставалось неизменным в течение определенного периода времени при использовании файлов cookie. Кто-нибудь знает скрипт, который может мне помочь?
Комментарии:
1. эмм, ты пробовал сеансы?
2. я не могу использовать сеансы. Я хочу, чтобы uuid оставался неизменным в течение длительного периода времени для каждого нового посетителя (т. е. месяц), поэтому сеансы не помогут.
3. Если вы не можете использовать сеансы, почему cookies вообще имеют значение в этом уравнении?
4. вам, люди, нужно прочитать более внимательно. Я могу использовать сеансы, НО я не могу их использовать, поскольку сеансы заканчиваются при закрытии браузера.
5. Не обязательно. Сеансы (обычно) поддерживаются cookies, поэтому они могут оставаться в живых до тех пор, пока не будут удалены cookies (при условии, что сервер их не удалит).
Ответ №1:
Не уверен, почему вы запрашиваете скрипт или в чем здесь проблема. Чтобы установить cookie, просто используйте:
if (empty($_COOKIE["uuid"])) {
$uuid = uniqid(); // or use a real UUID
setcookie("uuid", $uuid, time() 30*24*60*60, "/");
}
else {
$uuid = $_COOKIE["uuid"];
}
На самом деле вам следует время от времени запускать setcookie и в любом случае обновлять время жизни cookie.
Ответ №2:
Вы можете установить cookie, который удаляется при закрытии сеанса браузера. Это может быть использовано в качестве сигнала, когда пользователь «повторно посещает» сайт. Сохранение cookie uuid на каждой странице даст вам последний uuid, с помощью которого вы можете выполнить то, что вы запрашивали.
setcookie('firstvisit', 1);
setcookie('uuid', $uuid, time() 368400);
if(isset($_COOKIE['firstvisit']) amp;amp; isset($_COOKIE['uuid'])) {
// load uuid content
}
Комментарии:
1. Каждый раз, когда вы запускаете setcookie() с $ uuid, он заменяет значение ‘uuid’ в cookie.