这是一个老问题,我在发布这个
之前已经咨询了很多关于SO的问题How to prevent form resubmission when page is refreshed via PHP
Post/Redirect/Get on same page with firefox
等等。
我有一个小应用程序,结构就像这样
index.php (acting as controller)
viewsfolder(contains HTML)
models(contain DB insertion etc)
当用户登陆index.php
时,我会向他显示所需的视图假设
require_once(views/signin.php)
用户在index.php
上提交表单,例如从signin.php
提交数据到index.php?signin=true
。我从模型中调用所需的函数并创建 redirect to itself.
以避免重新提交表单。
显然在chrome和Firefox中我仍然可以重新提交表单,也可以点击浏览器的BACK按钮转到上一页。这破坏了整个商业逻辑。
我认为重定向应该对此有所帮助,但它不是 我知道我可以使用AJAX来避免所有这些,但我不能在没有AJAX的情况下这样做。我不认为每个基于MVC的CMS都在后端使用AJAX。
我的架构有问题吗?