当前位置: 洪哥笔记 > PHP > PHP防止重复提交

 

PHP防止重复提交


关键词

PHP 表单 重复提交

摘要

PHP开发防止客户端重复提交是一项很重要的工作,经常用户会感觉网页没有反应而进行重复提交。

由于网络原因,经常出来点了提交按钮,网页没有反应,而进行再次点击。这样就导致后台收到两次提交,从而进行两次处理,前后一般相隔几十秒。

1、前端解决
方法一:
可以通过前端来解决。当用户点了提交按钮之后,先使用js进行有效性判断,没问题后,将提交按钮”禁用“掉。然后再提交!

方法二:
使用ajax提交表单。点了提交按钮后,禁用提将按钮,或者设置一个状态值,将其设为1,表示正在提交。再提交时判断如果正在提交,则不作处理。等ajax返回后,再恢复状态。


2、后端解决

有时候前端无法完全解决问题,比如我用了jquery.validateEngine,没有办法设置状态。所以考虑后端解决。

if(session("act_last_time") != ''){
    if(floor( (time()-(int)session("act_last_time")) % 86400 / 60)  <1 ){
        $this->error("对不起,一分钟之内不能频繁提交!", U('Wap/MyAct/list'), 5);
    }
}else{
    $t = (int)time();
    echo $t;
    $_SESSION("act_last_time", $t);
}

后端解决不怎么友好,但绝对有效。即对提交频率进行控制。我这里设置的是1分钟。

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:PHP防止重复提交:http://www.splaybow.com/post/php-forbid-submit-double-164408231120157718.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« php计算两个时间相差的天数、小时数、分钟数、秒数 wdphp之select搜索并固定值 »