リファラーが途中までしか取得できない

アクセスログを自前で収集するようにして、その集計&分析プログラムを作成したところ妙な事に気がついた。

リファラーが下記のようになっているものが大量にある。
http://www.google.co.jp/search?sourceid=navclient

ネット検索してみると、どうやらgoogleツールバーで検索したものらしいが、なぜに途中までしか取得できないのか…

ふと冷静に、ログ収集のスクリプトを眺めてみると、なーんだそういうことか(といっても気がつくのに1時間も掛かった)

以下のように修正した。ついでにYahoo!検索の場合の例外処理も追加。

ブログ側
<script type=”text/javascript”>
  var ref=document.referrer;
  var newref=ref.replace(“&”,”&amp;”);
  document.write(‘<img src=”http://blueroad.sakura.ne.jp/php/ad1964.php?’ + newref + ‘” width=”1″ height=”1″ alt=””>’);
</script>
<noscript>
  <img src=”http://blueroad.sakura.ne.jp/php/ad1964.php?” width=”1″ height=”1″ alt=””>
</noscript>

ログ保存側
$r=htmlspecialchars(rawurldecode($_SERVER[‘QUERY_STRING’]));
// Yahoo!の例外処理
if(strpos($r,”yahoo.co.jp/search?p=”)!==FALSE && strpos($r,”ei=euc-jp”)!==FALSE){
  $r = mb_convert_encoding($r , “UTF-8” , “EUC-JP”);
}



関連エントリー