防止无JS的重复表单提交
Preventing Duplicate Form Submissions Without JS
我正在做一个项目,我正在使用mvc模式构建它。在成功提交表单时,我重定向用户并显示一条闪光消息(使用会话的成功消息),我对用户使用后退按钮或刷新没有问题。但是,如果用户在提交表单时遇到错误,则不会重定向表单,因此可以显示错误,同时保留旧表单数据以填充字段,这样用户就不必重新输入信息。
我遇到的问题是,用户什么时候会因为任何原因向按钮发送垃圾邮件。如果我双击或垃圾邮件按钮,会产生一个错误(无效的表单令牌错误),但数据库交互仍然会发生并插入表单数据。我正在努力寻找最好的js替代方案来保持跨浏览器兼容性。js是要走的路吗?他们是php的替代品吗?
当您使用会话变量时,为什么不在数据库更新后立即设置一个变量呢。然后在每次DB更新之前检查该值。如果为false,则更新DB。
function updateDB(){
if($_SESSION['already_submitted'] == true) return false;
// DB update code
// on success
$_SESSION['already_submitted'] = true
// rest of code
}
相关文章:
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 如何在没有表单提交、没有js、没有jquery和没有ajax的情况下将输入的文本框值存储到php变量中
- 带有远程 => true 的 Rails 表单提交 -- JS 文件呈现但不执行
- 如何从backgrid js中获取数据并以表单提交
- 为什么这个JS确认窗口没有在表单提交时启动
- 使用js表单验证器禁用html表单提交按钮
- 复选框表单字段名称在表单提交淘汰js时不提交
- 在快递中.js有没有办法同时处理 ajax 表单提交和浏览器帖子提交
- 使用 jquery.form.js jquery 插件导致我的表单提交两次
- Dropzone JS 等到 ajax 表单提交并更改 options.url
- 连接到表单提交节点 js 上的套接字
- 单击表单提交按钮不会调用我的 JS 函数
- 覆盖Magento中的默认数据表单提交JS活动
- 引导 JS 验证器和表单提交
- 在 JS 中的表单验证方法中获取表单提交方法的输出
- 表单提交后的Angular JS根范围
- jQuery(或者只是JS)从onSubmit函数中的多个表单提交按钮中进行选择
- 绑定到提交按钮的点击事件,将在表单提交之前运行我们的JS
- 防止无JS的重复表单提交
- 表单提交js/jquery保持在同一页面