Yii中登录使用session防止重复提交方法 [ 未指定版本 ]
$session = Yii::app()->session;
$user_id = Yii::app()->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();
}
纯属于总结得来:微博
River 广州
注册时间:2014-08-18
最后登录:2017-02-15
在线时长:371小时38分
最后登录:2017-02-15
在线时长:371小时38分
- 粉丝48
- 金钱175
- 威望80
- 积分4685
共 1 条评论
如果第11s发表一次成功了,这时候
unset($session[$sessionKey]);//超过限制时间,释放session";
清除了session。那第13s发表,岂不是又没有限制了?所以应该去掉else吧?说错了,是在else中给sessionKey存入最新的时间。