cookie代码:
$reloadtime = 2; //同一IP访问不算数的时间
$newno = date(U); 
$newip=getenv("REMOTE_ADDR");
$newid=$_REQUEST['id']; //这一点要注意,注意区分ID!
//原有数据
$lastip = $HTTP_COOKIE_VARS["lastip"];
$lasttime = $HTTP_COOKIE_VARS["lasttime"];
$lastid = $HTTP_COOKIE_VARS["lastid"];
//符合条件的
if(($newip != $lastip) || (($newno - $lasttime)>$reloadtime) || $newid != $lastid )
{//下面是重新创建cookie
setcookie("lastip",getenv("REMOTE_ADDR"));
setcookie("lasttime",date(U));
setcookie("lastid","$id");
}else{
echo "不能频繁刷新";
echo $PHP_SELF;
exit;
}
session代码:
session_start();
$f5_second=$_SESSION["f5_second"];
$now_date=date("H-i-s");$now_second=split("-",$now_date);
$old_second=split("-",$f5_second);$max_value=max($now_second[2],$old_second[2]);
$min_value=min($now_second[2],$old_second[2]);if( ($max_value - $min_value ) <=3 )
{echo "叫ぃ璶繵羉穝";
exit;
}$now_date=date("H-i-s");
$_SESSION["f5_second"]=$now_date;最后测试的结果是session肯定是不能用的,因为session在整个WEB里都是共享的,打开两个页面,刷新其中一个以后会影响到另一个页面,所以当刷新了一个页面再刷新另一个页面的时候就不能刷新了。cookie测试了一下,我设置时间为2秒,当我连续按刷新10-20次左右的时候就会有一次可以进入的,不知道是不是缓存在做怪。

解决方案 »

  1.   

    最后测试的结果是session肯定是不能用的,因为session在整个WEB里都是共享的,打开两个页面,刷新其中一个以后会影响到另一个页面,所以当刷新了一个页面再刷新另一个页面的时候就不能刷新了。
    ===========================================你防刷新的目的是为了什么????
    如果防刷新是针对某页面的,根本无法阻止过多的请求~~别人只要不断地刷新,但不对同一页面就行了~~