简单的javascript跟踪脚本

时间:2012-02-08 22:10:26

标签: php javascript google-analytics

我想创建一个简单的网络统计javascript代码(分析)

但是想知道包含引用者的正确方法是什么?

我想某种程度上需要用track.php中的php实现javascript转义(document.referrer)

这是我到目前为止所做的:

远程站点上的

脚本:

<script type="text/javascript" src="http://www.mydomain.com/track.php"></script>

local track.php:

<?php
$str = 'document.write(\'<img src="http://www.mydomain.com/tracking.php?id="/>\');';
echo $str;
?>

local tracking.php

<?php
header("content-type:image/gif");
$ip = $_SERVER["REMOTE_ADDR"];
$browser = $_SERVER['HTTP_USER_AGENT'];
//$referer = ????
///etc...
// save results to db ...

3 个答案:

答案 0 :(得分:5)

您想要构建所有参数的列表,例如......

var params = {
    resolution: screen.width + ',' + screen.height
};

...那么你需要将它们序列化为GET参数...

var serialisedGetParams = [];

for (var param in params) {
    if ( ! params.hasOwnProperty(param)) {
       continue;
    }
    serialisedGetParams.push(param + '=' + encodeURIComponent(params[param]));
}

serialisedGetParams = serialisedGetParams.join('&');

...然后提出请求......

(new Image).src = 'http://yourdomain.com/track.php?' + serialisedGetParams;

你发送的参数应该是只能 JavaScript可以获得的东西,例如分辨率等。通过图像的GET参数发送它们可以绕过同源策略。

此外,图像请求可以获取IP,推荐人等信息。检查$_SERVER超级全局,以获取有关请求的大量信息。

答案 1 :(得分:1)

您是否考虑过使用Google Analytics? (或任何其他免费产品)。它很可能比你能写的任何东西都更好更快。唯一的缺点是你把自己的灵魂卖给谷歌。

如果你想展示你的老板花哨的照片,这是要走的路:P

答案 2 :(得分:0)

我会进行AJAX调用并将您需要直接保存的信息传递给PHP页面。

与location.href,用户代理和其他内容一样