停止页面在刷新时重新发送表单

Dar*_*ren 3 html php

我想知道是否有办法在刷新时阻止页面重新发送html表单.

Ale*_*lex 6

您可以将Location标头发送到正在处理表单输入的脚本中的其他URL.此新URL将可用于浏览器,而无需发送表单数据.


Eug*_*eck 5

原则上不可能阻止您无法控制的客户端(浏览器)执行某些操作。然而,有可能 - 并且在您的情况下很容易 - 强化您的应用程序以应对此问题:

  • 当您显示表单时,创建一个随机令牌,将其存储在会话中并将其作为隐藏字段添加到表单中
  • 当您收到填写的表单时,根据会话检查令牌,如果不匹配则忽略数据,如果匹配则从会话中清除令牌并处理数据

任何标头或其他技巧可能会或可能不会与浏览器和人们无恶意地刷新有关,但它们绝对不会有助于抵御攻击者。


rid*_*ar2 5

使用帖子/重定向/获取:http://en.wikipedia.org/wiki/Post/Redirect/Get

在PHP中处理代码中的表单,然后输出任何东西header('Location: http://www.example.com/foo.php');(显然替换url)并在另一页面上显示.如果您需要将任何内容传递给该页面,请使用查询字符串和$_GET[]