Мой сайт включает пользователя, представляющего данные на нескольких страницах форм. Я могу передать данные, представленные на одной странице, прямо на следующую страницу, но как я могу отправить их на страницы после этого? Вот очень упрощенная версия того, что я делаю.
Страница 1:
<?php echo "<form action='page2.php' method='post'> Please enter your name: <input type='text' name='Name'/> <input type='submit' value='Submit'/></form>"; ?>
Страница 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>"; ?>
Страница 3:
<?php echo "Thank you for your request, $name!"; ?>
На последней странице должно отображаться имя пользователя, но, очевидно, это не сработает, потому что я не передал эту переменную на страницу. Я не могу иметь все данные, представленные на одной странице по сложным причинам, поэтому мне нужно, чтобы все было разделено. Итак, как я могу заставить эту переменную и другие переносить?
Использовать сеансы:
session_start();
на каждой странице
$_SESSION['name'] = $_POST['name'];
то на стр. 3 вы можете эхо $_SESSION['name']
Вы можете хранить данные в файле cookie на клиенте пользователя, который абстрагируется от концепции сеанса . См. Управление сеансом PHP .
Как упоминалось другими, сохранение данных на СЕССИИ, вероятно, будет вашим лучшим выбором.
В качестве альтернативы вы можете добавить данные в скрытое поле, чтобы опубликовать их:
страница 2:
<input type="hidden" name="username" value="<?php echo $name;?>"/>
page3
echo "hello $_POST['username'};
Вы можете создавать сеансы и использовать сообщения. Вы также можете использовать $ _GET для получения переменных из URL.
Помните, что если вы не используете подготовленные инструкции, убедитесь, что вы избегаете ввода всех пользователей …
если вы не хотите куки или сеансы: используйте скрытое поле ввода на второй странице и инициализируйте переменную, разместив ее так:
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";
Используйте переменную SESSION или скрытое поле ввода