做的一个页面,按了“提交”按钮时,发现产生了两条数据在数据库里。以前也使用过,没有修改,今天第一次发现了这种情况。不是我操作的,是别人操作后告诉我这个问题的。猜想原因:
1.按了“提交”时,页面刷新太慢,他又重新刷新了一下。我看了一下这两条数据,是在提交时间是一样的,但是这个提交时间只是精确到分,所以不知道是不是在同一分钟内刷新了两下。
2.可能是网络丢包了?这个丢包的问题,我不熟我重复了“提交”的操作,问题没有重现,(不可能是那个人自己往数据库里插数据的)请问,这可能是什么原因?

解决方案 »

  1.   

    你insert into mysql的代码可能有问题,你怎么判断什么情况下才insert数据的?
      

  2.   

    可能是MYSQL_QUERY函数你执行了两次
      

  3.   

    没有判断什么情况下才insert数据,凡是点击“提交”,都要insert
      

  4.   

    "可能是MYSQL_QUERY函数你执行了两次"
    是执行了两次,但是只是点击了一次“提交”
      

  5.   

    有些人喜欢什么都double click
    在系统处理完成前就做了多次提交保护方法有很多
    JS 间接提交, 做标记
    PHP session 记录最后的 action id

      

  6.   

    每个action生成一个token,token使用一次后失效。不但能防止二次提交,还能阻止csrf攻击