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

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

WBOY
WBOYoriginal
2016-06-23 14:39:241463parcourir

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


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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn