该方法利用S缓存方法
//防止大量访问,造成服务器压力大 function noHacker() { $time = 5; //每多少秒 $num = 30; //最多访问次数 $lists = S("noHacker"); $ip = getIp(); $sid = session_id(); $key = md5($ip.$sid); if (!$lists[$key]) { $lists[$key] = array('time' = >time(), "num" = >0, ); S('noHacker', $lists); } else { $data = $lists[$key]; if (time() > $data["time"] + $time) { $lists[$key] = array('time' = >time(), "num" = >0, ); S('noHacker', $lists); //重置 } else { if ($data['num'] >= $num) { exit("您访问过于频繁,请稍后在访问!"); } else { $lists[$key] = array('time' = >time(), "num" = >$data['num'] + 1, ); S('noHacker', $lists); //添加 } } } }
当前位置:叶子坑 » Thinkphp防止大量访问,造成网站压力大