refererを保存していく。自前で。(たぶん無駄な努力。)

さくらインターネットで、複数ドメイン運用すると、logが全部一緒くたになってしまいます。

log 分けてくれって言っても、断られるらしいので、自前でアクセス解析もどき。

※アクセス解析サービスはもっと高性能のライブラリとかが提供されていますので、

スクラッチで書くときはあくまで学習用途として使いましょう。

とりあえず$_SERVER[] を DBに問答無用で保存した

→いらん情報入りすぎ(笑) 1レコード 2kBとか死ぬ…

次、

$_SERVER[‘referer’] だけ生で保存してみよう!

→ああっ、検索ワードがurlencodeされたまま保存される!(笑)

次、


$url = "こんにちは";
echo urlencode($url); // こんにちは がURLエンコードされたものが出力されます。
echo urldecode($url); // こんにちは が出力されます。

参考 URLエンコード,デコード – phpspot

http://phpspot.net/php/pgURL%83G%83%93%83R%81%5B%83h,%83f%83R%81%5B%83h.html

ということで、デコードしてからDBに保存するようにしましたっ。

最終的にはこんな感じ(CakePHP用)

[‘referer’] が無かったときの対策しとかないとnotice が出ちゃうので


$this->data['Accesslog']['referer'] =

(isset($_SERVER['HTTP_REFERER']) ? urldecode($_SERVER['HTTP_REFERER']) : '' );

あとは $this->Accesslog->save();

でOK!

[amazon]4774135038[/amazon]

コメントを残す

メールアドレスが公開されることはありません。