刷新页面时如何维护$ post值;换句话说,如何在不丢失Post值的情况下刷新页面
答案 0 :(得分:6)
如果没有首页提交,这是不可能的!除非你以某种方式将表单字段提交回服务器,即没有使用jQuery等页面刷新。一些自动保存表单脚本。
如果这是用于验证检查,则不需要建议的会话。
用户填写表单并提交回自己 服务器端验证失败
$ _ 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']; }
答案 1 :(得分:1)
你不能这样做。 POST变量可能无法重新发送,如果是,浏览器通常会在用户刷新页面时执行此操作。
如果用户点击指向另一个页面的链接而不是刷新,则永远不会重置POST变量。
如果$post
是普通变量,则永远不会保存。
如果您需要保存某些内容,则需要使用Cookie。 $_SESSION
是Cookie的实现。 Cookie是存储在用户浏览器中的数据,每次请求都会重新发送。
参考:http://php.net/manual/en/reserved.variables.session.php
$ _SESSION变量只是一个关联数组,因此要使用它,只需执行以下操作:
$_SESSION['foo'] = $bar
答案 2 :(得分:0)
您可以在$ _SESSION中保存$ _POST值 保存你的所有$ _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']."' />";
?>
答案 3 :(得分:0)
您可以使用与表单中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>
答案 4 :(得分:0)
将帖子值放入会话
session_start();
$_SESSION["POST_VARS"]=$_POST;
您可以在另一个页面中获取此值,例如
session_start();
$_SESSION["POST_VARS"]["name"];
$_SESSION["POST_VARS"]["address"];
答案 5 :(得分:0)
您可以使用文件保存帖子数据,这样在有人删除文件之前不会删除数据,当然您可以轻松修改文件
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);
}
因此您的帖子值存储在$value
。
答案 6 :(得分:0)
实际上在html表单中它会保留发布数据。 当您需要在文本框中保留插入的数据时,这是有价值的。
<form>
<input type="text" name="student_name" value="<?php echo
isset($_POST['student_name']) ? $_POST['student_name']:'';
?>">
</form>