PHP Cookie не работает, не будет установлен

0

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

<input type="email" name="fes-email" class="fes-input" value="<?php echo $_COOKIE['hotspot-user-email']; ?>" placeholder="Еmail">

Это можно найти на странице сценария обработки.

setcookie('hotspot-user-email', $_POST['fes-email'], time() + (86400 * 30), 'domain.tld'); 

Я пытаюсь сохранить адрес электронной почты в файле cookie, так что в следующий раз, когда пользователь вернет адрес, будет отображаться эхо в поле ввода.

Есть ли проблема с моим кодом?

if(!empty($_POST['fes-email'])) {

            if (filter_var($_POST['fes-email'], FILTER_VALIDATE_EMAIL)) {

                setcookie('hotspot-user-email', $_POST['fes-email'], time() + (86400 * 30), '/'); // 86400 = 1 day

            }else { echo("EMAIL IS NOT VALID"); }

        }else { echo("EMPTY FIELD"); }
  • 0
    Вы задаете имя файла cookie как «hotspot-user-email», но извлекаете его как «uniroyal.mk-hotspot-user-email». Есть ли другой фрагмент кода, которым вы не поделились? Также проверьте возвращаемое значение «setcookie»
  • 0
    @ghopst Я только что изменил имя, когда разместил его здесь. Проблема в том, что cookie не установлен. Когда я захожу в chrome cookie и ищу его, его там нет.
Показать ещё 6 комментариев
Теги:
cookies

2 ответа

0
Лучший ответ

Ниже приведен самый простой фрагмент, который делает магию

<?php
  if (isset($_COOKIE['testCookie'])) {
      echo "<br/> Cookie is set: " . $_COOKIE['testCookie'] ." <br/>";
  } else {
      if (setcookie('testCookie','[email protected]', time() + 86400)) {
          echo "<br/> cookie is set <br/>";
      }
  }
?>
  • 0
    Печенье действительно установлено. Тем не мение. Это не читается.
  • 0
    Вы обновили страницу? Я проверил это сам и работает отлично. При обновлении вы получаете «Cookie установлен: [email protected]»
Показать ещё 1 комментарий
1

вы устанавливаете cookie только для "domain.tld"

пожалуйста, проверьте этот код для всей страницы этого адреса:

setcookie('hotspot-user-email', $_POST['fes-email'], time() + (86400 * 30), '/'); 
  • 1
    Было так, прежде чем я добавил конкретный домен ... надеялся, что решит проблему. Но нет.
  • 0
    у вас нет проблем, если вы генерируете cookie на сайте "domain.tld", но если вы генерируете cookie с другого сайта по этому домену, вы не можете получить к нему доступ
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню