2013-04-23 8 views
1

Мне нужно использовать значения, которые я получил с первого $_POST, вызовом во втором методе $_POST другому значению. например, я получаю $location = $POST['location_name'];

Я хочу, чтобы иметь возможность передать $ location, делая еще $ _POST, что приводит к второй форме.

1st Form -> 2nd Form($_POST['location-name']) -> 3rd form $_POST['location-name'] 

Но я теряю значение при переходе к 3-й форме.

Как я могу получить значение в 3-й форме?

Благодаря

+1

HTTP - протокол без учета состояния. Никакие данные не сохраняются нигде на сервере между запросами. – zerkms

+0

это должно быть по почте, или вы можете просто назначить '$ _SESSION ['location-name'] = $ _POST ['location-name'];' и использовать '$ _SESSION ['location-name']' later на? – bizzehdee

ответ

4

Хотя я бы не рекомендовал это по соображениям безопасности ... есть IS способа сделать это с помощью POST

Вы могли бы написать кучу скрытых полей на второй странице, которые содержат значения предыдущая форма пост, что-то вроде этого:

foreach($_POST as $field => $val) { 
    echo('<input type="hidden" name="'.$field.'" value="'.$value.'" />); 
} 

Это позволит создать скрытое поле для каждого значения в предыдущем $_POST массиве, и отправить его вместе с новыми данными формами, поэтому второй $_POST будет содержать все значения из первая и вторая формы

2

Вы должны использовать session variables для этого - принимать значения, представленные в первом посте, хранить их в $_SESSION и взять их оттуда после второго поста.

3

Как уже сообщалось, вы не можете использовать POST для этого. Сессия будет работать лучше.

Если вам действительно нужно использовать POST, тогда единственный способ действительно обойти это - загрузить страницу, заполняющую форму переменными POST, а затем автоматически отправить эту форму с помощью JavaScript в переменную местоположения. Эта форма должна иметь одно скрытое значение для каждой переменной POST с тем же атрибутом имени, что и ключ в массиве $ _POST.

См. Ответ duellsy для более ориентированного на код описания.

1

Только клиент может выполнить POST. И вы получаете эти переменные POST только тогда, когда клиент выполняет POST на ваш сервер.

Итак, вы должны найти другое решение. Вы можете использовать сеансы для хранения информации о клиенте, чтобы вы могли узнать клиента, когда он выполняет другой запрос на ваш сервер.

$_SESSION['variable_name']; 

Вы также можете включить переменную для первого POST в форму для следующего POST. Это чище, если вы не будете использовать все это на своем веб-сайте, а только для этого потока.

Помните, что вы всегда должны проверять данные, отправленные клиентами, вы должны следить за cross-site request forgery.

 Смежные вопросы

  • Нет связанных вопросов^_^