PHPIN.NET

 找回密码
 立即注册
查看: 5663|回复: 0

[技巧手记] Yii中后台使用session防止重复提交及灌水

[复制链接]

469

主题

31

回帖

5565

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5565
发表于 2015-1-19 21:56:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Yii中后台使用session防止重复提交及灌水
1、从前端的角度:增加遮罩
2、从后端的角度:使用session
  1. $session = Yii::app()->session;
  2. $user_id = Yii::app()->user->id;
  3. $sessionKey = $user_id.'_is_sending';

  4. if(isset($session[$sessionKey])){
  5.     $first_submit_time = $session[$sessionKey];
  6.     $current_time = time();
  7.     if($current_time - $first_submit_time < 10){
  8.         $session[$sessionKey] = $current_time;
  9.         $this->response(array('status'=>1, 'msg'=>'不能在10秒钟内连续发送两次。'));
  10.     }else{
  11.         unset($session[$sessionKey]);//超过限制时间,释放session";
  12.     }
  13. }

  14. //第一次点击确认按钮时执行
  15. if(!isset($session[$sessionKey])){
  16.     $session[$sessionKey] = time();
  17. }
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|PHPIN.NET ( 冀ICP备12000898号-14 )|网站地图

GMT+8, 2024-10-8 17:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表