我想创建一个简单的网络统计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 ...
答案 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,用户代理和其他内容一样