<?php
session_start(); // 启动会话

// 限制的请求数量和时间间隔
$maxRequests = 100;
$timeInterval = 600; // 10分钟

function handleRequest() {
    global $maxRequests, $timeInterval;
    
    // 获取客户端IP地址
    $ip = $_SERVER['REMOTE_ADDR'];
    
    // 检查是否存在会话并且已经存储了请求计数器和时间戳
    if (isset($_SESSION['request_count']) && isset($_SESSION['last_request_time'])) {
        $requestCount = $_SESSION['request_count'];
        $lastRequestTime = $_SESSION['last_request_time'];
        
        // 检查请求计数器是否达到限制的请求数量
        if ($requestCount >= $maxRequests) {
            return false;
        }
        
        // 检查上一次请求的时间间隔
        $interval = time() - $lastRequestTime;
        if ($interval < $timeInterval) {
            // 更新请求计数器和时间戳
            $_SESSION['request_count']++;
            $_SESSION['last_request_time'] = time();
            
            return true;
        }
    }
    
    // 初始化会话数据
    $_SESSION['request_count'] = 1;
    $_SESSION['last_request_time'] = time();
    
    return true;
}

// 处理请求
if (handleRequest()) {
    // 执行处理逻辑
    echo "请求成功!";
} else {
    // 返回错误信息或其他错误处理逻辑
    echo "请求过多,请稍后再试!";
}
?>