PHP防址多次涮新在下订单最后一步,是把订单信息写入到数据库,再显示订单号及金额,这个过程在一页面执行。但客户会在这个页面,再次涮新,又生成一个新的订单,这样如何防多涮新

解决方案 »

  1.   

    生成订单后,把生产订单的数据删除就行。
    或者
    生成订单后,来一次redirect。也可以防止刷新。
      

  2.   

    使用session存储一个唯一标识,然后进行对比!
      

  3.   

    关键是add数据入库和显示数据不能在一个页上。例如:From表单---->数据入库(add.php)跳转到显示页------>显示页show.php显示数据这样,用户点了表单提交后看到的是show.php页显示数据,刷新了只是show.php重新显示,而不会再次入库。
      

  4.   

    其实,就是一句话,怎么防止post操作的重新刷新,上面的意思都差不多,1、post处理过了以后,立马重post处理页面跳转到显示页面,刷新就是刷新显示页面2、数据过期,提交过来的内容看是否已经过期,加入hashkey啊、唯一标志啊等等
      

  5.   

    redirect这种方式不能有效地解决浏览器后退按钮导致地表单重复提交的问题.建议使用令牌验证方式
    生成表单时产生一个token值并将其保存在session中,当提交表单时同时也将表单中的token提交,在action中调用 check_token检查表单的token值,如果表单中的token与session中的token相同,则返回true并将session里的 token清掉,这样无论是刷新页面还是后退都不能重复提交表单了,因为表单里的token已过期。