2013-11-29 4 views
1

Мой сайт включает пользователя, представляющего данные на нескольких страницах форм. Я могу передать данные, представленные на одной странице, прямо на следующую страницу, но как я могу отправить их на страницы после этого? Вот очень упрощенная версия того, что я делаю.PHP, передающий несколько переменных на нескольких страницах

Page 1:

<?php 
echo "<form action='page2.php' method='post'> 
Please enter your name: <input type='text' name='Name'/> 
<input type='submit' value='Submit'/></form>"; 
?> 

Page 2:

<?php 
$name=$_POST["Name"]; 
echo "Hello $name!<br/> 
<form action='page3.php' method='post'> 
Please enter your request: <input type='text' name='Req'/> 
<input type='submit' value='Submit'/></form>"; 
?> 

Page 3:

<?php 
echo "Thank you for your request, $name!"; 
?> 

Последняя страница должна отображать имя пользователя, но, очевидно, он выиграл» t, потому что я не передал эту переменную на страницу. Я не могу иметь все данные, представленные на одной странице по сложным причинам, поэтому мне нужно, чтобы все было разделено. Итак, как я могу заставить эту переменную и другие переносить?

+0

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

ответ

1

Вы можете хранить данные в куки на клиенте пользователя, который забирается в концепцию сессии. См. PHP session management.

6

Использование сессий:

session_start(); на каждой странице

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

затем на PAGE3 вы можете повторить $_SESSION['name']

+0

Разве это не session_start()? – JasonStack

+0

@JasonStack: Да, это так! Ничего себе, 4 года спустя! –

0

Как уже отмечалось другими, сохранение данных в сеансе, вероятно, ваш лучший выбор.

Alternatly можно добавить данные в скрытом поле, чтобы разместить его вместе:

Page2:

<input type="hidden" name="username" value="<?php echo $name;?>"/> 

page3

echo "hello $_POST['username'}; 
0

Вы можете создавать сеансы и использовать сообщения. Вы также можете использовать $ _GET для получения переменных из URL.

Помните, что если вы не используете подготовленные заявления, убедитесь, что вы убегаете весь пользовательский ввод ...

0

, если вы не хотите печенья или сеансы: использовать скрытое поле ввода во второй странице и инициализации переменный, разместив его любит:

page2---- 

$name=$_POST['name']; /// from page one 

<form method="post" action="page3.php"> 
<input type="text" name="req"> 
<input type="hidden" name="holdname" value="<? echo "$name"?>"> 
////////you can start by making the field visible and see if it holds the value 
</form> 

page3---- 

$name=$_POST['holdname']; ////post the form in page 2 
$req=$_POST['req']; ///// and the other field 
echo "$name, Your name was successfully passed through 3 pages"; 
0

использования переменного SESSION или скрытые поля ввода

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