专业提供QQ活动,QQ新闻,QQ技巧,电脑技巧以及其他日常信息,让我们的梦想生活更加精彩!

【分享】PHP为站点增加访问日志功能,附源码

2024-12-06 05:02:32 投稿人:梦想 围观62 0 评论

说明:

当前仅记录:IP+IP 归属地 + 页面地址

代码从我博客与图床里剥离出来的,根据此代码可以写一个简易的站点统计啦

 

1. 在需要增加日志记录的页面添加以下代码:

支持多页面记录,可以将代码写入模板内,存储日志的文件 记得修改为绝对路径

<?php //在需要记录访问日志的页面添加此段代码 //================================= 日志记录================================================== // 获取客户端IP地址的函数 function getClientIP() { $keys = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR'); foreach ($keys as $key) { if (array_key_exists($key, $_SERVER)) { if (filter_var($_SERVER[$key], FILTER_VALIDATE_IP)) { return $_SERVER[$key]; } } } return 'UNKNOWN'; } // 获取页面地址的函数 function getCurrentUrl() { $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $host = $_SERVER['HTTP_HOST']; $url = $protocol . $host . $_SERVER['REQUEST_URI']; return $url; } //IP归属地查询函数 function get_ip_location($ip_address) { $url = "http://ip-api.com/json/{$ip_address}?lang=zh-CN"; // 使用简体中文返回结果 $response = @file_get_contents($url); // 使用 @ 符号抑制错误信息 if ($response) { $data = json_decode($response, true); if ($data['status'] === 'success') { return "{$data['country']} {$data['regionName']} {$data['city']}"; // 返回国家、地区和城市 } } return "未知归属地"; // 如果获取失败,则返回未知 } //获取页面地址 $currentUrl = getCurrentUrl(); // 使用函数获取IP地址 $ip = getClientIP(); //echo "来访IP地址: " . $ip; //IP归属地获取 $ip_cn=get_ip_location($ip); $logFile = 'log.php'; // 日志文件存放名,可以将多个页面写入一个文件内,使用绝对地址即可,文件格式可以自定义 $message = "IP: " . $ip ."  IP归属地: " . $ip_cn . "  URL: ". htmlspecialchars($currentUrl) . "</br>"; // 将变量内容追加到日志文件 file_put_contents($logFile, date('Y-m-d H:i:s') . " - " . $message . PHP_EOL, FILE_APPEND); ?>
PHP

2. 新建一个 log.php 文件填入下面代码

直接访问 log.php 即可查看访问日志,默认访问密码 admin;

<?php //log.php // 设置密码 $password = "admin"; // 检查是否有认证信息 if (!isset($_SERVER['PHP_AUTH_PW'])) { header('WWW-Authenticate: Basic realm="请输入密码"'); header('HTTP/1.0 401 Unauthorized'); echo '请输入密码'; exit; } else { // 验证密码 if ($_SERVER['PHP_AUTH_PW'] == $password) { // 密码正确,显示内容 echo "验证通过!</br>"; } else { // 密码错误 die ("密码错误,程序终止!</br>") ; } } echo''; ?> <title>访问日志-希米图册</title> <style> /* CSS */ body { /* 设置字体样式为 Arial 或者 sans-serif 作为后备字体 */ font-family: Arial, sans-serif; /* 使用线性渐变背景,渐变颜色从左到右依次为 #fed6e3 和 #c0efec */ background-image: linear-gradient(to right, #fed6e3, #c0efec); /*background-image: linear-gradient(to right, #fed6e3, #c0efec);*/ /* 将页面边距设置为 0,以消除默认边距 */ margin: 20 auto; /* 居中显示 */ font-size:20px; line-height: 1.6; /* 设置行高为 1.6,增加行间距 */ margin-left: 20px; /* 左侧外边距设置为 0 */ } </style> 2024-12-05 20:15:28 - 这是日志信息</br>
PHP

【本地搭建网站 IP 访问统计】   这里有分享一个简易统计站点源代码,感兴趣可以自己下载研究研究

https://www.ximi.me/post-148.html?



代码还未仔细测试,如有 bug 下方反馈我再继续改;

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

标签:访问  增加  功能  站点  分享  
投稿 评论