­句插入记录,防止SQL注入 $db->exec("REPLACE INTO {$db->tablepre}iqismart_access_log (tid, uid, ip, create_date) VALUES ($tid, $uid, '$ip', $create_date)"); } // 检查用户访问权限 function accesslimit_check($uid){ global $db, $time; static $result_cache = array(); // 添加静态缓存 // 已经检查过的用户,直接返回缓存结果 if(isset($result_cache[$uid])) { return $result_cache[$uid]; } // 获取用户信息 $user = user_read($uid); $gid = empty($user) ? 0 : $user['gid']; // 获取配置信息 static $kv = NULL; if($kv === NULL) { $kv = kv_get('accesslimit'); // 检查是否需要每日清理 accesslimit_check_daily_reset(); } // 如果插件未启用,直接返回true if(empty($kv['enabled'])) { return $result_cache[$uid] = true; } // 获取用户组信息 static $groups = NULL; if($groups === NULL) { $grouplist = group_list_cache(); $groups = array(); $i = 0; foreach($grouplist as $group) { $groups[$group['gid']] = array('index' => $i, 'name' => $group['name']); $i++; } } // 无法找到用户组信息 if(!isset($groups[$gid])) { return $result_cache[$uid] = true; } $group_index = $groups[$gid]['index']; // 检查是否无限制 if(!empty($kv['unlimit'][$group_index]) && $kv['unlimit'][$group_index] == $gid) { return $result_cache[$uid] = true; } // 检查是否设置了时间和数量限制 $time_limit = isset($kv['time'][$group_index]) ? intval($kv['time'][$group_index]) : 0; $count_limit = isset($kv['count'][$group_index]) ? intval($kv['count'][$group_index]) : 0; if(empty($time_limit) || empty($count_limit)) { return $result_cache[$uid] = true; } // 计算时间范围 - 修正日期计算逻辑 $start_time = $time - ($time_limit * 86400); // 使用86400秒/天的固定值更准确 // 检查用户访问数量 if($gid == 0) { $ip = accesslimit_get_real_ip(); $sql = "SELECT COUNT(DISTINCT tid) AS count FROM {$db->tablepre}iqismart_access_log WHERE create_date > $start_time AND ip = '$ip'"; } else { $sql = "SELECT COUNT(DISTINCT tid) AS count FROM {$db->tablepre}iqismart_access_log WHERE create_date > $start_time AND uid = $uid"; } $res = $db->sql_find_one($sql); $used_count = $res['count']; // 超过限制 if($used_count >= $count_limit) { return $result_cache[$uid] = false; } // 针对非新用户的额外检查 if($gid > 0 && isset($user['create_date']) && $user['create_date'] < $time - 60 * 60 * 24) { static $thread_count = NULL; if($thread_count === NULL) { $thread_count = $db->sql_find_one("SELECT COUNT(DISTINCT tid) AS count FROM {$db->tablepre}thread WHERE create_date > $start_time")['count']; } if($thread_count <= 0) { return $result_cache[$uid] = false; } } return $result_cache[$uid] = true; } // 获取用户真实IP function accesslimit_get_real_ip() { static $ip = NULL; // 添加静态缓存 if($ip !== NULL) { return $ip; } // 更安全的IP获取方式 $client_ip = ''; if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { // Cloudflare支持 $client_ip = $_SERVER['HTTP_CF_CONNECTING_IP']; } elseif(!empty($_SERVER["HTTP_CLIENT_IP"])) { $client_ip = $_SERVER["HTTP_CLIENT_IP"]; } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); $client_ip = trim($ips[0]); // 只取第一个IP } elseif(!empty($_SERVER['REMOTE_ADDR'])) { $client_ip = $_SERVER['REMOTE_ADDR']; } // 验证IP是否有效 if(!empty($client_ip) && filter_var($client_ip, FILTER_VALIDATE_IP)) { $ip = $client_ip; } else { $ip = '0.0.0.0'; // 默认IP } return $ip; } ?> 内蒙古-51探花论坛
  • 火车站对面红旗街 呼和浩特
    探花一级 qazwsxplm 2021-4-8
    2615 0
  • 呼和浩特市牵牛藤(程同学) 呼和浩特
    探花一级 ← ddddnnhg 2021-4-5
    2503 1
  • 丰州南路 呼和浩特
    探花二级 Klili 2021-4-4
    2284 0
  • 呼和浩特验证大奶兼职 呼和浩特
    探花一级 taida 2021-4-3
    2759 0
  • 呼和浩特天一一般爽 呼和浩特
    探花一级 大JJ 2021-4-3
    2645 0
  • 呼和浩特乐汤会一般 呼和浩特
    探花一级 saomei 2021-4-3
    2251 0
  • 呼和浩特天一一般 呼和浩特
    探花一级 paoyou 2021-4-3
    2173 0
  • 天医体验,挺好 呼和浩特
    探花一级 withpassion 2021-4-2
    2342 0
  • 呼和浩特鑫航苑大众洗浴 呼和浩特
    探花一级 saomei 2021-4-1
    2301 0
  • 呼和浩特验证奶糖 呼和浩特
    探花一级 ← 游客 2021-3-31
    2234 1
  • 呼和浩特安华攻略 呼和浩特
    探花一级 七次郎 2021-3-31
    2283 0
  • 赛罕区爽快游 呼和浩特
    探花一级 19293949 2021-3-30
    2670 0
  • 呼伦贝尔楼凤爽记 呼伦贝尔
    探花一级 大JJ 2021-3-30
    3014 0
  • 鄂尔多斯达旗浴场探路 鄂尔多斯
    探花一级 taida 2021-3-29
    2914 0
  • 兼职少妇爽 包头
    探花二级 fee 2021-3-29
    2351 0
  • 包头伊鑫不推荐 包头
    探花二级 fee 2021-3-29
    2296 0
  • 扎兰屯清水洗浴 呼伦贝尔
    探花一级 有福了 2021-3-28
    2941 0
  • 呼和浩特足疗泻火 呼和浩特
    探花一级 mas 2021-3-28
    2308 0
  • 会展中心牵牛藤爽快 呼和浩特
    探花一级 ghb19911027 2021-3-27
    2371 0
  • 呼和浩特翰林御都爽记 呼和浩特
    探花一级 大JJ 2021-3-27
    2244 0

发新帖
内蒙古
内蒙古一品楼分享内蒙古各辖区的性息场所,包含内蒙古洗浴桑拿一条龙,内蒙古足疗SPA,内蒙古KTV夜店,内蒙古红灯区,内蒙古楼凤站街,内蒙古兼职学生妹,内蒙古外围女等信息.