Rumah >pembangunan bahagian belakang >tutorial php >同一台电脑,如何限制他在一分钟内只能访问5次某个域名的动态页面。超过五次的,就跳转到指定静态页。
同一台电脑,如何限制他在一分钟内只能访问5次某个域名的动态页面。超过五次的,就跳转到指定静态页。
这样做的意义是什么呢?减轻服务器压力?
这样做的意义是什么呢?减轻服务器压力?
一个IP就看作是一个电脑,在后台做一个访问次数池,定时每分钟清空一次,访问一次对应ip加一
IP不行,可以用cookie
IP不行,可以用cookie
求案例代码。。。
我想到了用cookie限制,但是不知道具体怎么写才合理高效。。
纯用JS操作cookie就可以了啊
<?php$filePath = '';$uuid = isset($_COOKIE['UUID']) ? $_COOKIE['UUID'] : false;//第一次访问if ($uuid === false){ //生成唯一的cookieID $userCookieId = md5($_SERVER['REMOTE_ADDR'].time());//SERVER_ADDR setcookie('UUID', $userCookieId); logVisitCount('1',"{$filePath}{$userCookieId}.txt"); echo 'first visit!'; exit;}//得到访问次数$visitCount = @file_get_contents("{$filePath}{$uuid}.txt");if ($visitCount === false){ $visitCount = 1; logVisitCount('1', "{$filePath}{$uuid}.txt");}else{ if ($visitCount > 5) { echo "It's max"; exit; } $visitCount++; logVisitCount($visitCount, "{$filePath}{$uuid}.txt");}echo "visit count : {$visitCount}";function logVisitCount($str, $file){ $handle = fopen($file, 'w'); fwrite($handle, $str); fclose($handle);}