使用META REFRESH时防止重新提交


Prevent resubmission when using META REFRESH

当用户提交表单并且一切正常时,他将收到一条成功消息,其中META REFRESH为3秒。然后页面会刷新,但当我单击刷新按钮或F5时,页面会询问我是否要重新提交,这意味着META refresh实际上并没有重定向和清除所有内容。

在使用META REFRESH时,是否有方法防止数据重新提交?

我本可以使用header('Location: somewhere.php');,但我无法用它显示成功消息。

我将META REFRESH与PHP头一起使用,如header("refresh:3;url=" . $home_action);

您应该使用header('location: somewhere.php?message=success'),在页面somewhere.php上,您可以检查message get变量的存在,如果您看到成功消息,则输出成功消息。

这是通常的做法。另一种方法是设置$_SESSION变量并在somewhere.php上检查该变量。如果它存在,请记住将其从会话中删除。