制作自己的网站分析工具

4
我决定不再使用Google Analytics来获取准确的数字,因为在用户浏览器中禁用JavaScript的情况下,将无法计算。因此,我想自己制作分析工具。
我有一张表格,记录用户的IP地址、页面URL和日期/时间。
然后,在网站每个页面的底部加入一个脚本,该脚本将运行SQL查询以将数据提交到数据库中。
以下是脚本内容。
$page_viewed = mysql_real_escape_string($_SERVER['REQUEST_URI']);
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
     $ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
     $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
     $ip=$_SERVER['REMOTE_ADDR'];
}
$ip = mysql_real_escape_string($ip);
mysql_query("And then do the sql query.... ");

由于你们大多数都是经验丰富的开发人员,我想知道你们是否对我的脚本有任何改进意见或需要修改的地方。


如果您只是要求一般反馈,http://codereview.stackexchange.com/ 可能更合适。 - Colin Brock
3
如果准确度是您的主要需求,最好坚持使用谷歌分析或像GoSquared或Mint这样的付费服务。实施可靠的分析解决方案并不比您想象中的容易,因为会使您的服务器负载沉重。首先,您的解决方案将需要每个页面加载一个SQL插入查询。如果您每秒超过100个请求,这可能会严重减慢您的服务器速度。如果您没有那种负载,那么还有必要担心那些没有启用JavaScript的少数用户吗? - Dan Blows
2
不转发引用的人也无法被正确计算。实现100%可靠的网络分析基本上是不可能的。 - Marc B
我建议你看一下这个链接:http://hangupin.com/web-analytics-recorder-php-tutorial/ - Utkarsh Dixit
4个回答

2

这似乎是个不好的主意...通常情况下,当用户不支持JavaScript时,他们的浏览器会解析html标签中包含的内容。通常情况下,您可以包含一个单像素图片或类似物(该图片的目的是调用像上面给出的代码)。使用此请求获取没有JavaScript能力的客户端的信息,而不是将每个人都放在同一条船上。


1
如果您正在使用Apache,这些都已记录在日志文件中。您可以使用类似http://awstats.sourceforge.net/的工具来分析它们。
如果您有值得分析的无JS启用流量,使用MySQL和PHP进行记录将会使您的服务器崩溃。

0

正如 @Blowski 上面提到的,有更好的选择。我以前使用过 Mint,它是一项令人难以置信的服务。它是用 PHP 编写的,既美观又易于理解。

我鼓励你先花些时间查看其 功能亮点,以及 屏幕录像和截图,再去浪费时间重新发明轮子 —— 因为你的时间很宝贵。


0

由于浏览器缓存和JavaScript的原因,您会发现日志文件分析也不是100%准确的。将日志分析和页面标记相结合是大多数网站的最佳选择。我过去几年中使用了Nihuo和Google Analytics,它们对我非常有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接