我有一个在刷新时重新提交的表单。我搜索了SO,发现与我的具体问题无关。我知道最好有一个单独的PHP页面,但是对于这个特定的项目,它需要全部在一个PHP页面上。刷新页面时我需要重置POST,以便不再自动发送表单。
请注意,我不能将页面重定向到其他地方,因此我无法使用Post / Redirect / Get。我想要的结果是:第一次访问人员,输入正确的代码,脚本运行,然后下次访问或刷新页面等,他们必须再次完成表单。任何建议都会非常感激。
let myView = NSBundle.mainBundle().loadNibNamed("viewidentifier", owner: self, options: nil)[0] as? YourView
myView.frame = self.view.bounds
self.view.addSubview(myView)
答案 0 :(得分:1)
此方法主要用于允许输出POST激活的脚本以将用户代理重定向到选定的资源。新URI不是最初请求的资源的替代引用。 303响应绝不能被缓存,但对第二个(重定向)请求的响应可能是可缓存的。
您可以在处理完提交后(但在将任何html发送给用户之前)使用header来执行此操作:
header('Location: '.$_SERVER["PHP_SELF"], true, 303);
答案 1 :(得分:0)
if (!empty($_POST)) setcookie ("last_post", implode($_POST),time()+360000);
if (!empty($_POST) and $_COOKIE['last_post'] == implode($_POST)) $_POST = [];
对于POST请求,我们将向cookie中添加数据,随后的POST请求中,我们将对它们进行检查,如果它们彼此不同,则将进一步传递参数。