访问记录 // 验证IP地址的有效性 function validate_ip($ip){ if(filter_var($ip, FILTER_VALIDATE_IP)){ return true; } else { return false; } }

// 获取访客的IP地址 $ip = $_SERVER['REMOTE_ADDR'];

// 过滤访问记录 if(strpos($_SERVER['REQUEST_URI'], 'script') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'bot') !== false){ // 恶意攻击或注入,不记录 } else { // 验证IP地址的有效性 if(validate_ip($ip)){ // 加密访客信息 $ip = md5($ip); $browser = md5($_SERVER['HTTP_USER_AGENT']); $time = date('Y-m-d H:i:s', time()); $url = $_SERVER['REQUEST_URI'];

// 使用PDO来操作数据库,防止SQL注入
$dsn = 'mysql:host=localhost;dbname=dbname';
$username = 'username';
$password = 'password';
$options = array(
  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

try{
  $pdo = new PDO($dsn, $username, $password, $options);
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $stmt = $pdo->prepare('INSERT INTO visitor_record (ip_address, browser_info, visit_time, visit_url) VALUES (:ip, :browser, :time, :url)');
  $stmt->bindParam(':ip', $ip);
  $stmt->bindParam(':browser', $browser);
  $stmt->bindParam(':time', $time);
  $stmt->bindParam(':url', $url);

  $stmt->execute();

  // 使用Monolog来记录日志
  $log = new Logger('access');
  $log->pushHandler(new StreamHandler('access.log', Logger::INFO));
  $log->info('Visitor Info', array('ip' => $ip, 'browser' => $browser, 'time' => $time, 'url' => $url));

  echo '记录成功';
} catch(PDOException $e){
  echo '记录失败:' . $e->getMessage();
}

} else { echo 'IP地址无效'; } }

// 使用缓存技术来统计访问量 $cache = new Memcached(); $cache->addServer('localhost', 11211);

if(!$cache->get('visit_count')){ $conn = new mysqli('localhost', 'username', 'password', 'dbname');

if($conn->connect_error){ die('数据库连接失败:' . $conn->connect_error); }

$sql = 'SELECT COUNT(*) FROM visitor_record';

$result = $conn->query($sql);

if($result){ $row = $result->fetch_row(); $visit_count = $row[0]; $cache->set('visit_count', $visit_count, 3600); // 设置缓存时间为1小时 } else { echo '查询失败:' . $conn->error; }

$conn->close(); } else { $visit_count = $cache->get('visit_count'); }

echo '访问量:' . $visit_count; ?>

PHP 访问记录系统:安全、高效、可扩展

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

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