在同一页面中使用$_SERVER['PHP_SELF'];
和header('Location: http://www.example.com/form.php');
是否正常或标准,以避免在刷新时重新提交表单。
我理解在带有表单的页面上使用$_SERVER['PHP_SELF'];
的概念,但是如果我使用header('Location: http://www.example.com/form.php');
来避免重新提交到数据库,那么我应该重定向到同一页面。
我有点困惑。
更新:让它更清晰
我不想在表单操作中使用处理文件名(将来证明 - 文件名更改等),因此使用$_SERVER['PHP_SELF']
但现在点击刷新会重新提交表单。为了避免我们进入PRG路线,但将其重定向到同一页面$_SERVER['PHP_SELF']
并不能解决问题。
我想知道别人是怎么做的。最重要的是,我想拥有我的表单并在同一页面中处理它,而无需在刷新时重新提交。
答案 0 :(得分:1)
此模式称为Post/Redirect/Get。
您应该重定向到处理输入数据的页面,例如,如果表单操作是$_SERVER['PHP_SELF'];
,您在同一页面上处理输入数据,那么如果要处理,则重定向到同一页面另一页上的输入数据,而不是重定向到该页面。
所以,如果
我应该重定向到同一页面。
是一个问题。答案是肯定的。您可能希望添加一些GET
变量来显示“已成功发送”的消息,或类似的内容。