针对123文字描述进行优化代码需要完整版1 没有对访问次数进行验证可能会导致非法访问或者恶意攻击。2 访问次数的限制是基于session的若用户清除了浏览器缓存或者使用了多个浏览器则无法达到限制访问次数的目的。3 访问次数的计算和判断是在服务端进行的若网站存在高并发访问的情况则可能会导致性能问题。phpsession_start;设置访问次数默认为0if!isset$_SESSIONcount
10){
//获取当前时间
$now = time();
//获取明天的时间
$tomorrow = strtotime('+1 day');
//设置明天可访问的时间
$_SESSION['tomorrow'] = $tomorrow;
//重置访问次数为0
$_SESSION['count'] = 0;
//输出提示信息
echo '您今天的访问次数已经达到上限,请明天再来访问。';
//记录非法访问日志
$log = date('Y-m-d H:i:s') . " IP: " . $_SERVER['REMOTE_ADDR'] . " 非法访问";
file_put_contents('access.log', $log . "\n", FILE_APPEND);
//终止程序
exit();
}
//验证是否在访问时间限制内
if(isset($_SESSION['tomorrow']) && time() < $_SESSION['tomorrow']) {
//获取剩余时间
$left_time = $_SESSION['tomorrow'] - time();
//输出提示信息
echo '您已经超过访问次数限制,请于' . date('Y-m-d H:i:s', $_SESSION['tomorrow']) . '后再来访问。';
echo '剩余时间:' . $left_time . '秒';
//记录非法访问日志
$log = date('Y-m-d H:i:s') . " IP: " . $_SERVER['REMOTE_ADDR'] . " 非法访问";
file_put_contents('access.log', $log . "\n", FILE_APPEND);
//终止程序
exit();
}
//可以继续访问
echo '欢迎访问!';
?>
调用代码:
直接在需要限制访问次数的页面中引用即可:
include 'access_control.php';
原文地址: https://www.cveoy.top/t/topic/7xu 著作权归作者所有。请勿转载和采集!