2012-02-08 14 views
2

私はjavascriptのコード(分析)簡単なJavaScriptの追跡スクリプト

シンプルなウェブの統計情報を作成したいが、リファラを含むようにいただきました!正しい方法を疑問に思うでしょうか?

私は何とかこれは私がこれまで持っているものであるtrack.php

内のPHPとJavaScriptのエスケープ(document.referrer)を実装する必要があると思う

:リモートサイト上の

スクリプト:

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

ローカルtrack.php:

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

ローカルtracking.php

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

[ '$ _SERVER [ 'HTTP_REFERER']'](http://www.php.net/manual/en/reserved.variables.server.php )。 –

答えて

5

あなたはすべてのparamsのリストを構築したい:唯一の欠点は、あなたの上司の空想の写真を表示したい場合は、これが移動するための方法である..あなたはGoogleにあなたの魂を販売していることを

です例えば...

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

...そしてあなたがのparamsを取得するために、それらをシリアライズする必要があります...

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; 

など、解像度など、あなたが送るのparams のみ JavaScriptを得ることができるものである必要があり、画像のGET paramsは経由してそれらを送信するには、あなたが同一生成元ポリシーを回避することができます。

さらに、画像要求ではIP、Referrerなどの情報を取得できます。$_SERVERスーパーグローバルで、要求に関する豊富な情報を調べます。

+0

'document.referrer'プロパティは' $ _SERVER ['HTTP_REFERER'] 'スーパーグローバルよりも簡単に偽装できます。 –

+0

$ _SERVER refererをかなりeaslyに変更することができます。私はアレックスのようにもします – dynamic

+0

@RobWもしそれが偽装される可能性があるなら、GETパラメータを修正するかブラウザのリクエストヘッダを修正することがどれほど簡単かは関係ありません。私が提供したパラメータは、推奨よりも一例です。 – alex

1

Google Analyticsを使用したことはありますか? (または他の無料の製品)。あなたが書くことができるものよりも優れていると思われます。 P

0

私はAJAX呼び出しを行い、JavaScriptページから直接取得した情報をPHPページに渡します。 LOCATION.HREF、ユーザーエージェントや他のものと同様に

+1

XHRクロスドメインを作成し、古いIEをサポートすることは難しい。 – alex

+0

あなたは完全に正しいです、クロスドメイン上のXHR問題を忘れました – dynamic

関連する問題