重定向后回显文本

时间:2014-08-24 20:58:26

标签: php redirect

所以我试图在重定向后回复一些文本,我试图创建一个更改数据库中名字和姓氏的脚本(EASY)。我想告诉用户点击Save changes按钮后发出消息,说:

  

您的名字已成功更新!

在这种情况下重定向或页面刷新之后

但是,我重定向用户的原因是,我想阻止重新提交表单。

到目前为止,这是我的代码:

// If the query was successfull
if ($name_change) {

    $header = header( "refresh:1;url=settings.php" );                   
    $this->messages[] = "Your name has been updated successfully!";

} else {
    $this->errors[]   = "There was a problem while settings your new name.";

}

1 个答案:

答案 0 :(得分:2)

不要POST到显示表单的同一页面。始终POST到接受请求的页面,然后重定向到正确的位置。举个简单的例子:

  • form.php 生成HTML视图和表单。表单有action="post.php" method="POST",POST到 post.php
  • post.php 接受$ _POST数据并处理它。如果POST数据错误,则 post.php 会将标头重定向回 form.php ,以便用户可以重新提交。如果POST数据正确,则需要对数据执行任何操作,然后有一个标题重定向到 success.php
  • success.php 输出您的名字已成功更新!消息。

此方法中的任何数量的刷新都不允许重新提交表单。