10) { // 获取用户IP地址或浏览器Cookie $identifier = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : $_SERVER['HTTP_COOKIE']; // 获取当前时间 $now = time(); // 获取明天的时间,加入用户标识,使其更加准确 $tomorrow = strtotime('+1 day', mktime(0, 0, 0, date('m'), date('d'), date('Y'))) . $identifier; // 判断明天的时间是否已经设置 if (!isset($_SESSION['tomorrow'])) { $_SESSION['tomorrow'] = $tomorrow; } // 判断当前时间是否已经超过明天的时间 if ($now >= substr($_SESSION['tomorrow'], 0, -strlen($identifier))) { // 重置访问次数为0 $_SESSION['count'] = 0; // 删除明天的时间,下次访问重新计算 unset($_SESSION['tomorrow']); // 跳转到其他页面 header('Location: access_limit.php'); exit(); } else { // 计算还剩余的时间,使用倒计时的方式显示 $remaining_time = $_SESSION['tomorrow'] - $now; $remaining_hour = floor($remaining_time / 3600); $remaining_minute = floor(($remaining_time % 3600) / 60); $remaining_second = $remaining_time % 60; // 输出提示信息 $remaining_time = sprintf('%02d:%02d:%02d', $remaining_hour, $remaining_minute, $remaining_second); echo '您今天的访问次数已经达到上限,请于'.$remaining_time.'后再来访问。'; exit(); } } else { // 可以继续访问 echo '欢迎访问!'; } ?> 检测时间的代码bug并且优化代码需要完整版phpsession_start; 设置访问次数默认为0if !isset$_SESSIONcount $_SESSIONcount = 0; 访问次数+1$_SESSIONcount++; 判断访问次数是否超过10次if $_SESSIONcount 10 获取用户IP地址或浏览器Cookie $identifier = iss

原文地址: https://www.cveoy.top/t/topic/7HO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录