Intereting Posts
Расширение Twig – среда symfony2 Ошибка сертификата SSL: самоподписанный сертификат в цепочке сертификатов с использованием Twilio на моем веб-сайте Laravel Пользовательский программный пользователь в magento работает неправильно? Joomla и MySQL jQuery UI Сортировка, затем порядок записи в базу данных Как сохранить файл изображения в базу данных в php? Проблема с RSA-шифрованием строки в PHP и передача ее в .NET-службу Как получить данные из xml в php и создать новую страницу или URL-адрес в php и показать полный контент из xml? Настраивание страниц PHP и MySQL Laravel 5.2 Избегайте общей папки и открывайте ее прямо из корня в localhost как загрузить несколько изображений с помощью codeigniter GLOBAL Array удаляется … – WP All Import function.php – Как я могу анализировать дату из текстового файла? Создание пользовательской страницы в WordPress и добавление к ней контента Пока цикл не закончится, когда я расскажу об этом в JavaScript

PHP cookie установлен на второй странице обновления

Я хочу использовать cookie на веб-странице, и я хочу использовать его для сохранения любых необязательных переменных. но после использования setcookie и обновления страницы isset() не удалось обнаружить, я должен быть много обновленной страницы для ее использования,

я не могу использовать его на первой странице обновления или посещения.

PHP:

 setcookie("user", "Alex Porter", time()+3600); if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br>"; else echo "Welcome guest!<br>"; //unset($_COOKIE['user']); //setcookie('user', '', time() - 3600); с setcookie("user", "Alex Porter", time()+3600); if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br>"; else echo "Welcome guest!<br>"; //unset($_COOKIE['user']); //setcookie('user', '', time() - 3600); 

РЕЗУЛЬТАТ:

после сохранения и обновления страницы

 Welcome guest! 

второе обновление:

 Welcome Alex Porter 

Related of "PHP cookie установлен на второй странице обновления"

Когда вы устанавливаете файл cookie, он отправляется в браузер. В следующий раз, когда браузер отправит запрос на страницу, он отправит информацию cookie обратно, и страница сможет ее использовать.

  1. Браузер посещает страницу (логин или что-то подобное) и отправляет НЕТ файлов cookie.
  2. Сервер устанавливает cookie (что означает включение их в заголовок HTTP-ответа).
  3. Браузер посещает страницу и отправляет данные cookie.
  4. Сервер может видеть данные cookie и использовать его.

Чтобы исправить это, перенаправьте пользователя на страницу, где вы хотите отобразить данные после того, как cookie был установлен, вместо простого отображения страницы. Таким образом, вы можете использовать данные cookie.

Ну, в этом нет ничего плохого. В первый раз, когда вы обновляете, вы фактически запускаете скрипт для установки cookie. Таким образом, он выполняет оператор else.

Когда вы обновляете его во второй раз, функция isset() возвращает true, и оператор if выполняется.

Вот живописное описание:

введите описание изображения здесь

Однако есть проблемы с вашим скриптом. Обновление вашей страницы каждый раз обновляет время печенья до 3600 seconds . Таким образом, вам нужно установить cookie только в том случае, если в браузере пользователя нет файла cookie, например:

 if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br>"; else { echo "Welcome guest!<br>"; setcookie("user", "Alex Porter", time()+3600); } 

Я думаю, вы хотите что-то вроде этого:

 if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br>"; else { echo "Welcome guest!<br>"; setcookie("user", "Alex Porter", time()+3600); } 

Cookie установлен на определенный путь и домен. Вы должны изменить setcookie () на

 setcookie ("user", "Alex Porter", time()+3600, "/", "youdomain.com"); 

Если установлено значение '/', файл cookie будет доступен во всем домене (youdomain.com).

Cookie будет отображаться после обновления страницы.

Ваш код также можно упростить:

  echo "Welcome " . isset($_COOKIE["user"]) ? $_COOKIE["user"] : "guest" . "!<br>"; 

Данные $_COOKIE считываются из данных запроса клиента и не записываются сразу setCookie() . Это нормальное поведение и должно быть включено в поток вашей программы.

Если вы хотите, чтобы данные cookie были немедленно доступны в вашем случае, вы можете попробовать что-то вроде этого:

 if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br>"; else { $user = "Alex Porter"; setcookie("user", $user, time()+3600); echo "Welcome $user!<br>"; }