Простой вопрос PHP cookie - PullRequest
       1

Простой вопрос PHP cookie

0 голосов
/ 26 января 2011

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

Ниже приведен код для send.php

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

Значение файла cookie пустое.Зачем?Как это исправить?

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

Почему $ _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   " />

Ответы [ 5 ]

1 голос
/ 26 января 2011
<input type="text" id="nameField" name="Name"

Имя этого входа тоже должно быть nameField .

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

$ _ GET и $ _ POST переменные получают значения входных данных формы по имени Например, $_GET['stack'] и $_POST['stack'] получают значение <input name="stack">.

0 голосов
/ 26 января 2011

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

Файлы cookie (и, следовательно, $ _COOKIE) не будут установлены до тех пор, пока не загрузится страница next - он должен вернуть заголовок, которыйустанавливает файл cookie для клиента до того, как клиент отправит свой запрос с файлом cookie в нем.

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

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

0 голосов
/ 26 января 2011

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

О POST: вам нужно использовать $ _POST ['name_attribute'] вместо ID

0 голосов
/ 26 января 2011

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

$ name = $ _POST ['Name'];

, либо изменить имя на входе на nameField

0 голосов
/ 26 января 2011

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

...