Как сохранить значение $ post при обновлении страницы; Другими словами, как обновить страницу без потери значения Post
Это невозможно без отправки страницы в первую очередь! Если вы каким-либо образом не отправили поля формы на сервер, то есть без обновления страницы, используя jQuery и т. Д. Somesort из Auto Save Form.
Если это для проверок проверки, нет необходимости в сеансах, как было предложено.
Пользователь заполняет форму и отправляет обратно самостоятельно.
$ _GET
<input type="hidden" name="first" value="<?php echo htmlspecialchars($first, ENT_QUOTES); ?>" />
подтверждение сообщение, конец.
альтернативно, как предложено сохранить весь пост в сессии, что-то вроде этого, но опять же нужно сначала подать на работу ….
$ _POST
if(isset($_POST) & count($_POST)) { $_SESSION['post'] = $_POST; } if(isset($_SESSION['post']) && count($_SESSION['post'])) { $_POST = $_SESSION['post']; }
Вы не можете этого сделать. Переменные POST не могут быть повторно отправлены, если они есть, браузер обычно делает это, когда пользователь обновляет страницу.
Переменная POST никогда не будет повторно установлена, если пользователь нажимает ссылку на другую страницу вместо обновления.
Если $post
– нормальная переменная, она никогда не будет сохранена.
Если вам нужно что-то сэкономить, вам нужно использовать файлы cookie. $_SESSION
– это реализация файлов cookie. Куки-файлы – это данные, которые хранятся в браузере пользователя и отправляются с каждым запросом.
Ссылка: http://php.net/manual/en/reserved.variables.session.php
Переменная $ _SESSION является всего лишь ассоциативным массивом, поэтому для ее использования просто выполните следующее:
$_SESSION['foo'] = $bar
Вы можете сохранить свои значения $ _POST внутри $ _SESSION. Сохраните все ваши $ _POST следующим образом:
<?php session_start(); $_SESSION['value1'] = $_POST['value1']; $_SESSION['value2'] = $_POST['value2']; // ETC... echo "<input type='text' name='value1' value='".$_SESSION['value1']."' />"; echo "<input type='text' name='value2' value='".$_SESSION['value2']."' />"; ?>
ставить значения для сеанса
session_start(); $_SESSION["POST_VARS"]=$_POST;
и вы можете получить это значение на другой странице, например
session_start(); $_SESSION["POST_VARS"]["name"]; $_SESSION["POST_VARS"]["address"];
Вы можете использовать то же значение, которое вы получили в POST
внутри формы, таким образом, когда вы его отправляете, он останется там.
Небольшой пример:
<?php $var = mysql_real_escape_string($_POST['var']); ?> <form id="1" name="1" action="/" method="post"> <input type="text" value="<?php print $var;?>"/> <input type="submit" value="Submit" /> </form>
Вы можете использовать файл для сохранения почтовых данных, чтобы данные не удалялись, пока кто-то не удалит файл и, конечно, вы можете легко изменить файл
if($_POST['name']) { $file = fopen('poststored.txt','wb'); fwrite($file,''.$_POST['value'].''); fclose($file); } if (file_exists('poststored.txt')) { $file = fopen('ipSelected.txt', 'r'); $value = fgets($file); fclose($file); }
поэтому ваше значение post хранится в $value
.
Фактически в html-формах он хранит данные post. это важно, когда вам нужно сохранить вставленные данные в текстовые поля.
<form> <input type="text" name="student_name" value="<?php echo isset($_POST['student_name']) ? $_POST['student_name']:''; ?>"> </form>