Отправка данных формы на одну страницу, затем на другую? - PullRequest
1 голос
/ 27 февраля 2012

У меня есть небольшая проблема с этим, настолько простым, насколько это возможно.У меня есть простая форма с именем, электронной почтой, комментариями и т. Д., Которая выводит себя на одну страницу php, но я хочу иметь ссылку, которая отправляет ее на вторую страницу, например:

<label for="name">Name:</label><input type="text" name="name" size="20" />

Goesна вторую страницу (second.php) с этим кодом и печатает его просто отлично:

print "<div>Thank you, $name.</p></div>";

Но если я попытаюсь отправить $ name на третью страницу (third.php), используя подобный код, он обнаружитсякак это:

Thank you, $name.

С фактической переменной, а не с тем, что было сохранено в $ name.

Мне кажется, что я упустил одну крошечную вещь, но я не уверен, что этоявляется.Я использовал это:

$name = $_POST['name'];

Чтобы перевести его в second.php, а затем - в третий.php:

print 'Click <a href="third.php? name=' . $name . '">here</a> to proceed.';

Просто чтобы посмотреть, получит ли он ту же информацию отsecond.php, но я не думаю, что это работает таким образом.Есть ли что-то еще, что я должен делать на третьей странице?Я чувствую, что это что-то невероятно незначительное, но когда я учусь, я просто не могу понять это.

Ответы [ 4 ]

1 голос
/ 27 февраля 2012

Вы можете сделать это так.

когда вы объявляете

$name = $_POST['name'];

вы можете использовать в заголовке для передачи этой переменной

if(isset($_POST['btnname']))
{
header('Location: second.php?name='.$name);
}

В вашем втором php

вы можете получить его таким образом

 Thank you, <php echo $_GET['name']; ?>

Или, если вы хотите, чтобы он был доступен для всех страниц, используйте сессию

$_SESSION['name'] = $_POST['name'];

= D

0 голосов
/ 27 февраля 2012

Вы можете сохранить имя на второй странице и снова установить переменную $ _GET перед вызовом третьей страницы.Это связано с тем, что переменные действительны только для этого конкретного запроса, и их необходимо установить заново при выполнении другого запроса.

0 голосов
/ 27 февраля 2012

Веб-сайты не имеют состояния, что означает, что переменные на сервере сохраняются только в течение нескольких секунд, затем HTML-код обрабатывается и отправляется в браузер клиентов. Затем память сервера освобождается для обслуживания других клиентов.

У вас есть несколько вариантов:
1) Использование скрытого поля формы и печать (с помощью php) их имени в скрытом поле формы, чтобы при повторной публикации оно сохранялось (при повторной публикации).
2) Сессии
3) печенье
4) Распечатайте его в URL (т.е. page.php? Name = ". $ Name;)

Все зависит от того, как вы попадаете на третью страницу (из ссылки? Форма? Перенаправление php?)

0 голосов
/ 27 февраля 2012

вы можете попробовать это используя скрытый ввод

<label for="name">Name:</label>
<input type="hidden" name="name" value="<? echo $name; ?>" size="20" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...