因此,表单在我的网站上提交,表单操作与自身相同。在发布虚拟变量之后刷新页面
我希望用户能够刷新页面而无需再次发送相同的变量。
我以为未设置($ _ POST);会因为某种原因达到这个目的,那么有没有另外一种方法来实现这个目标呢?
因此,表单在我的网站上提交,表单操作与自身相同。在发布虚拟变量之后刷新页面
我希望用户能够刷新页面而无需再次发送相同的变量。
我以为未设置($ _ POST);会因为某种原因达到这个目的,那么有没有另外一种方法来实现这个目标呢?
不,未设置($ _ POST)不会'帮助你。当这个数组从浏览器请求中填充时。
通常的做法(和协议要求)是使用HTTP重定向到一些(通常是相同的)位置。 在同一个文件中的POST表单处理程序的一个粗略的轮廓是这样的:
if ($_SERVER['REQUEST_METHOD']=='POST') {
//write data
Header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
当POST
请求响应时,您可能需要通过向GET
请求发出server-side redirect来解决此问题。这将防止用户刷新页面并意外地重新发送POST
请求。
感谢您的意见丹尼尔,那么你的意思是像有form.php的和form_posted.php? – 2010-04-08 20:17:18
使用标题功能来执行此重定向。 – webbiedave 2010-04-08 20:18:44
@Pete:是的。这是实现典型'thank_you'页面的流行方法。将用户重定向到由'GET'请求生成的'thank_you'页面,而不是从'POST'请求返回的页面,这被认为是很好的做法。 – 2010-04-08 20:20:21
o好吧我看到我可以使用这个,谢谢上校Shrapnel! – 2010-04-08 20:19:10
我明显不能接受7分钟,但我会再次感谢时 – 2010-04-08 20:19:44