刷新页面而不会丢失Post值

时间:2012-09-02 08:41:47

标签: php html

刷新页面时如何维护$ post值;换句话说,如何在不丢失Post值的情况下刷新页面

7 个答案:

答案 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>