找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1670|回复: 0
打印 上一主题 下一主题

php防止用户重复提交表单

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:41:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦。
效果图:





那么如何规避这中重复提交表单的现象出现呢?我们可以从很多方面入手:
首先从前端做限制。前端JavaScript在按钮被点击一次后禁用,即disabled,这个方法简单的防止了多次点击提交按钮,但是缺点是如果用户禁用了javascript脚本则失效。
第二,我们可以在提交后做redirect页面重定向,即提交后跳转到新的页面,主要避免F5重复提交,但是也有不足之处。
第三,就是数据库做唯一索引约束
第四,就是做session令牌验证
我们现在来了解下简单的利用session token来防止表单重复提交的方法。
我们在表单中加一个input隐藏域,即type="hidden",其value值用来保存token值,当页面刷新的时候这个token值会变化,提交后判断token值是否正确,如果前台提交的token与后台不匹配,则认为是重复提交。

  
">


  

以上是一个简单的防止重复提交表单的例子。
那么实际项目开发中,会对表单token做更复杂的处理,即我们说的令牌验证。可能要做的处理有:验证来源域,即来路,是否为外部提交;匹配要执行的动作,是添加、修改or删除;其次最重要的是构建token,token可以采用可逆的加密算法,尽可能复杂,因为明文还是不安全的。
以上就是为大家分享的如何解决ph防止用户重复提交表单问题,希望对大家的学习有所帮助。
            
            
您可能感兴趣的文章:
  • PHP对表单提交特殊字符的过滤和处理方法汇总
  • php实现过滤表单提交中html标签的方法
  • php过滤表单提交的html等危险代码
  • php表单敏感字符过滤类
  • 浅谈php提交form表单
  • 表单提交错误后返回内容消失问题的解决方法(PHP网站)
  • php实现表单多按钮提交action的处理方法
  • AJAX PHP无刷新form表单提交的简单实现(推荐)
  • php表单加入Token防止重复提交的方法分析
  • php 防止表单重复提交两种实现方法
  • PHP实现表单提交时去除斜杠的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端