>  기사  >  백엔드 개발  >  同一台电脑,如何限制他在一分钟内只能访问5次某个域名的动态页面。超过五次的,就跳转到指定静态页。

同一台电脑,如何限制他在一分钟内只能访问5次某个域名的动态页面。超过五次的,就跳转到指定静态页。

WBOY
WBOY원래의
2016-06-23 14:39:241440검색

同一台电脑,如何限制他在一分钟内只能访问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);}


简单写了一下,你改改吧。。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.