php_self和重定向在同一页面

时间:2013-06-10 16:25:50

标签: php page-refresh

在同一页面中使用$_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']并不能解决问题。

我想知道别人是怎么做的。最重要的是,我想拥有我的表单并在同一页面中处理它,而无需在刷新时重新提交。

1 个答案:

答案 0 :(得分:1)

此模式称为Post/Redirect/Get

您应该重定向到处理输入数据的页面,例如,如果表单操作是$_SERVER['PHP_SELF'];,您在同一页面上处理输入数据,那么如果要处理,则重定向到同一页面另一页上的输入数据,而不是重定向到该页面。

所以,如果

  

我应该重定向到同一页面。

是一个问题。答案是肯定的。您可能希望添加一些GET变量来显示“已成功发送”的消息,或类似的内容。