0

在同一页面中使用$_SERVER['PHP_SELF'];and是否可以或标准以避免在刷新时重新提交表单。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']并不能解决问题。

我想知道其他人是如何做到的。最重要的是,我希望在同一页面中处理我的表单,而无需在刷新时重新提交。

4

1 回答 1

1

这种模式称为Post/Redirect/Get

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

因此,如果

我应该重定向到同一页面吗?

是一个问题。答案是肯定的。你可能想添加一些GET变量来显示“成功发送”的消息,或者类似的东西。

于 2013-06-10T16:30:27.533 回答