みぢんこキャッチャー はIMGタグをトリガとして起動し、指定された条件の場合、ダミー画像を返送し、かつ、指定された行動をするプログラムの雛形です。自由に改造して好みの動作をするように完成させてください。CakePHPで動作テストしましたが、少し変更すればPHPでも動作するでしょう。
スポンサードリンク
フローチャート
- MidincoCather 用トリガの仕掛けられたページを対象者が開きます
- 対象者のウェブブラウザは、img タグを見つけると自動的に画像を取得しに行きます
(MidincoCather は img タグをトリガとしますので、柔軟に共存できます) - MidincoCather は指定された条件の場合、指定された動作を行ないます
- MidincoCather は呼び出し元に対してダミーまたは正規の画像情報を返送します
サンプルimgタグ
<img src="/tests?guid=on">
img タグは、純粋なhtml文書はもちろん、WordPressなどのCMSやCakePHPのViewなど、幅広いシステムに無理なく挿入できるでしょう。
コード(抜粋)
/* * Midinco Catcher (tm) Ver.0.01 * Copyright www.casey.jp 2010, GPL * * $components * - Qdmail * - Email * - RequestHandler etc. */ function _midinco_catcher($file){ // init Configure::write('debug', 0); $msg = array(); // rule and mail // ex. IP Address $ipaddress = 'xxx.xxx.xxx.xxx'; if($ipaddress == $this->RequestHandler->getClientIP()){ $msg[] = 'now visit ' . $ipaddress; $this->_sendMail($msg); } // ex. GUID $guid = 'xxxxxx'; if(!empty($_SERVER{'HTTP_X_DCMGUID'})){ if(ereg("AVI3ORg", $_SERVER{'HTTP_X_DCMGUID'})){ $msg[] = 'now visit ' . $guid; $this->_sendMail($msg); } } // return image if($img = @imagecreatefromjpeg($file)){ $this->layout = false; $this->autoRender = false; header('Content-type: image/jpeg'); imagejpeg($img, null, 100); imagedestroy($img); }else{ $this->cakeError('error404'); } }
サイト内の関連する投稿
- pc.casey.jp » CakePHPでメール送信 – Qdmail
- pc.casey.jp » CakePHPでメール送信(Shell版)
- pc.casey.jp » CakePHPでメール送信(標準版)
- pc.casey.jp » 環境変数(PHP5)
- pc.casey.jp » Archive for CakePHP
使い方いろいろ
- 特定の誰かが閲覧した際に特別な画像を表示させる
- 特定の誰かが閲覧した際に管理者にそれをメールで報告させる
- bot が来たことを検知して、鯖落ちとの関連を調べる
- 特定の日時だけ任意の画像を表示させる
- カウントダウン用の画像を切り替えて表示させる
- 自分が訪れた際はイメージカウンタを機能させない
- JavaScript を併用して、画面の解像度情報を取得する
- guid=on などを設定し、特定の端末に限り動作させる
- 携帯電話からアクセスされたときと、それ以外の場合で表示を切り替える
- 特定のrefererを持つユーザを追跡する
- 特定のIPアドレスからアクセスがあった場合に報告する
- 得意の行動パターンだった場合、データーベスに記録する
- 知り合い以外という条件に合致した場合、その情報を報告し、画像で警告する
- アクセス解析プログラムで不足している情報を補う
- 画像が直リンされている場合は表示しない
- 画像を表示できる権限がある場合だけ表示する
などなど。使い方は未知数です。同様の方式で動作するアクセス解析などで得られる情報を知っていれば、数多くの情報が得られることがわかるでしょう。
データベースに記録する場合は [CakePHP]How to save IP address or Host name automatically | iwaking.com のように、Columnがあれば同時的に動作するように仕掛けることもできると思います。
ダウンロード
MidincoCather(tm)Ver.0.01 (697 ダウンロード )※ おそらくimgタグをトリガとするカウンタやアクセス解析プログラムと同様の手順でしょう。
※ CakePHP 1.3.3 で動作確認しました。
※ 当然アクセス毎に動作するので、必要に応じて(特にメール送信する場合)ロック処理や一定期間内は動作しないようにしないと大変なことになるかもです。
※ これはベアボーンのようなものです。完成させて任意の動作をさせるのはあなたの仕事です^^
コメント