<?php
header("Content-Type:text/html; charset=utf-8");
include_once("libs/RSA.class.php");
/**
* 在线高频频繁提交解决方案
* @author 周阳<305846826@qq.com>
* @link http://www.jieone.com/
*/
class Token extends RSA{
/**
* 客户端唯一ID
*/
private $date=0;
private $clientID="abccccc";
/**
* 系统access_token,即要保存于客户端的数据
*/
private function sys_access_token(){
$array=array(
'clientID'=>$this->clientID,
'date'=>$this->date
);
$sys_access_token = json_encode($array);
//RSA公钥加密
return $this->public_encrypt($sys_access_token);
}
/**
* 保存access_token
*/
public function get_access_token(){
if(empty($_COOKIE['access_token'])){
$this->date=time()-100;
return $this->sys_access_token();
}
return $_COOKIE['access_token'];
}
/**
* 保存access_token
*/
private function save_access_token(){
setcookie("access_token",$this->sys_access_token());
}
public function check(){
$access_token=$this->get_access_token();
//RSA私钥解密
$access_token = $this->private_decrypt($access_token);
//信息已被非法篡改
if(empty($access_token)){
return false;
}
$object=json_decode($access_token);
//2秒只能ajax请求一次,可修改
if ($object->date + 2 > time()){
return false;
}
//保存access_token
$this->date=time();
$this->save_access_token();
return true;
}
}
echo '<br><br><br><br><br><br><center><h1>频繁刷新试试</h1></center><br>';
$Token=new Token();
if(!$Token->check()){
echo '<center><h2 style=" color:red">您请求过快,请稍后再试</h2></center><br><br><br>';
exit();
}
echo '<center><h2 style=" color:green">访问正常</h2></center><br><br><br>';
echo "您当前access_token:".$Token->get_access_token();
以上就介绍了PHP限制频繁请求,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号