重定向后保留$ _POST数据

时间:2014-12-07 14:54:43

标签: php post url-redirection

在重定向之前保留$ _POST数据的最佳方法是什么?

想象一下这种情况:页面A有一个数据表单,然后我们点击提交按钮将$ _POST请求发送到同一页面A.

如果要显示错误,在数据表单中再次加载数据会很有趣,这会阻止用户将所有文本写入两次

1 个答案:

答案 0 :(得分:1)

可能有点迟了,但无论如何这里都是一种方法。 (对于有同样问题的人)

假设你有一个页面,“form.php” 如果您将表单发布到页面本身:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  // action of the form will be "/path/on_your/webserver/to/form.php"
  // so it will POST to itself
  <input name="field_1" type="text" placeholder="Enter Text">
  <input name="submit" type="submit" value="Submit">
</form>

现在,如果您单击提交,它将处理您文件中的任何PHP代码。 如果您希望在POST请求之后输入的<input name="field_1">中的文本为<input>字段提供值属性,并让PHP回显发布的值,如下所示:

<input name="field_1" type="text" placeholder="Enter Text" 
value="<?php if isset($_POST) {echo $_POST['field_1'];}?>">

现在,在输入字段中输入文本并单击“提交”后,文本将显示在字段中。

您可能已经拥有此解决方案或其他解决方案。请注意,如果您使用此解决方案,$_SERVER['PHP_SELF']如果容易受到网址注入攻击。在需要的地方注意并消毒你的变量。