在重定向之前保留$ _POST数据的最佳方法是什么?
想象一下这种情况:页面A有一个数据表单,然后我们点击提交按钮将$ _POST请求发送到同一页面A.
如果要显示错误,在数据表单中再次加载数据会很有趣,这会阻止用户将所有文本写入两次
答案 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']
如果容易受到网址注入攻击。在需要的地方注意并消毒你的变量。