Вопрос

Почему это не работает?

Ниже код находится на send.php

<?php
  $expire=time()+60*60*24*30;
  $name = $_POST['nameField'];
  setcookie("name", $name, $expire);
?>

Значение печенья пусто. Почему? Как это исправить?

Новый вопрос:

Почему $ _post ['namefield'] null?

<form action="/contact/send.php" method="post" id="contactForm">
<input type="text" id="nameField" name="Name" value="<?php if (isset($_COOKIE["name"])){ echo $_COOKIE["name"];} ?>" class="extra_large" />
<input type="submit" class="submit" name="Submit" value="   Send   " />
Это было полезно?

Решение

<input type="text" id="nameField" name="Name"

Имя этого ввода должно быть Наименование , слишком.

<input type="text" id="nameField" name="nameField"

$ _Get а также $ _Post Переменные получают значение ввода формы, по имени. Например $_GET['stack'] а также $_POST['stack'] получает <input name="stack">Значение.

Другие советы

В HTML вы должны написать name = "namefield", имя - это имя для опубликованного значения, а не идентификатор, если это так, код выше, похоже, работает правильно

Название поля формы - «Имя», идентификатор - «имя». Поэтому вам нужно использовать либо

$ name = $ _post ['name'];

или измените имя на вводе на название Field

О cookie: файлы cookie вступит в силу только на загрузке следующей страницы. Поэтому, если вы установите файл cookie, вы не можете ссылаться на или использовать cookie, пока не загрузите другую страницу. Это всего лишь одна из причуд, как они работают.

О сообщении: вам нужно использовать $ _post ['name_attribute'] вместо идентификатора

Откуда вы знаете, что это не работает?

Файлы cookie (и так $ _cookie) не будут установлены, пока следующий Загрузка страницы - он должен вернуть заголовок, который устанавливает файл cookie клиенту, прежде чем клиент отправит свой запрос с помощью файла cookie.

Таким образом, для этого скрипта будет представлен HTTP -запрос, он вернет заголовки, чтобы установить имя cookie вместе с любыми выводами, и будет только следующей страницей, которая получит (и заполняет $ _cookie) с помощью имени cookie.

Кроме того, как отмечалось, $ _post [] ссылается на атрибут имени элемента формы. Ваш текстовый поле должен иметь имя = 'namefield', а не только идентификатор.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top