8

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

4

7 回答 7

7

如果没有页面提交,这是不可能的!除非您以某种方式将表单字段提交回服务器,即使用 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']; }
于 2012-09-02T09:21:27.653 回答
2

你不能这样做。POST 变量可能不会被重新发送,如果是,浏览器通常会在用户刷新页面时执行此操作。

如果用户单击指向另一个页面的链接而不是刷新,则永远不会重新设置 POST 变量。

如果$post是一个普通变量,那么它永远不会被保存。

如果您需要保存某些内容,则需要使用 cookie。$_SESSION是 cookie 的一种实现。Cookie 是存储在用户浏览器上的数据,每次请求都会重新发送。

参考: http: //php.net/manual/en/reserved.variables.session.php

$_SESSION 变量只是一个关联数组,所以要使用它,只需执行以下操作:

$_SESSION['foo'] = $bar
于 2012-09-02T08:47:16.493 回答
1

您可以将 $_POST 值保存在 $_SESSION's Save your all $_POST's 中,如下所示:

<?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']."' />";
?>
于 2012-09-02T08:44:36.783 回答
1

实际上,它以 html 形式保存发布数据。当您需要将插入的数据保留在文本框中时,这很有价值。

  <form> 
<input type="text" name="student_name" value="<?php echo 
isset($_POST['student_name']) ? $_POST['student_name']:'';    
?>">
</form>
于 2016-07-20T04:43:31.683 回答
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>
于 2012-09-02T08:48:50.110 回答
0

将帖子值放入会话

session_start();
$_SESSION["POST_VARS"]=$_POST;

你可以在另一个页面中获取这个值,比如

session_start();
$_SESSION["POST_VARS"]["name"];
$_SESSION["POST_VARS"]["address"];
于 2012-09-02T08:53:51.360 回答
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.

于 2014-04-26T11:14:27.520 回答