Как установить cookies для uuid

#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.