php防止表单重复提交
后端防止重复提交的基本原理:
服务器返回表单页面时,会先生成一个subToken保存于session,并把该subToen传给表单页面。当表单提交时会带上subToken,服务器获取表单信息判断session保存的subToken和表单提交subToken是否一致。若不一致或session的subToken为空或表单未携带subToken则不通过。
首次提交表单时session的subToken与表单携带的subToken一致走正常流程,然后拦截器内会删除session保存的subToken。当再次提交表单时由于session的subToken为空则不通过。从而实现了防止表单重复提交。
$session = Yii::app()->session;
$user_id = $this->user->id;
$sessionKey = $user_id.'_is_sending';
if(isset($session[$sessionKey])){
$first_submit_time = $session[$sessionKey];
$current_time = time();
if($current_time - $first_submit_time < 10){
$session[$sessionKey] = $current_time;
$this->response(array('status'=>1, 'msg'=>'不能在10秒钟内连续发送两次。'));
}else{
unset($session[$sessionKey]);//超过限制时间,释放session";
}
}
//第一次点击确认按钮时执行
if(!isset($session[$sessionKey])){
$session[$sessionKey] = time();
}
可以参考以下链接,写的比较详细:https://www.geek-share.com/detail/2723635382.html
https://www.geek-share.com/detail/2683573049.html
- 防止php重复提交表单更安全的方法
- PHP防止表单重复提交的几种常用方法
- PHP简单利用 token 防止表单重复提交
- php防止表单重复提交
- php表单加入Token防止重复提交的方法分析
- PHP使用session防止表单重复提交
- PHP防止用户重复提交表单
- PHP简单利用token防止表单重复提交
- PHP实现防止表单重复提交功能【基于token验证】
- php表单加入Token防止重复提交
- PHP表单增加token验证,防止站外提交/重复提交/双击提交
- php+mysql 除了设置主键防止表单提交内容重复外的另一种方法
- php通过记录IP来防止表单重复提交方法分析
- php表单加入Token防止重复提交的方法分析
- PHP防止重复提交表单的例子
- PHP防止表单重复提交方法
- php表单加入Token防止重复提交
- 防止表单重复提交,PHP生成token并自动更新
- PHP使用token防止表单重复提交的方法
- php表单加入Token防止重复提交的方法分析