- 締切済み
PHPで画像の参照元を知る。
当社のシステムをクライアントのサーバーへ導入し貸し出すのですが、<img src="http://当社のサーバー.php">という1x1ピクセルの画像をシステムに埋め込んでおき、それ場所意外でシステムを複製された場合に分かるようにしたいです。(もっともソースを解析されると意味ありませんが・・・) こちらのサーバーのログファイル(a.log)に新しいドメインからの呼び出しがあれば追記していきたいのですが、どのようなコードを書けばよいでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
まず、imgを相手に埋め込ませるという不確実な方法では効果が薄い さらに1ピクセルとはいえimgでずれがでるとデザインに影響する可能性がある また、imgは相手のブラウザにキャッシュする可能性がある 以上からimgで処理するのはデメリットの方が大きいと考えます。 imgなど姑息な処理ではなくシステムの機能に組み込んでしまえばよいような 気がするのですがいかがでしょうか?
- agunuz
- ベストアンサー率65% (288/438)
補足です 「サーバから」アクセスさせるときには、サーバの情報(ホスト名とかDocumentRootとか)を取得して送るという意味です。設定ファイルに持っている情報じゃ意味がないですからね(設定ファイルのホスト名でしか動作しないように作っていれば、設定ファイルのホスト名でもいいですけど)。
- agunuz
- ベストアンサー率65% (288/438)
img要素に対してアクセスを行うのはブラウザです。なので、ブラウザがRefererを送信していればそれを取得出来ます。img要素を埋め込んだ元の(htmlの)URLになっているハズです。 $ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; if ($ref !== '') { // $ref をログファイルに追記 } #「文字列を(日時を付加して)ログファイルに追加」の部分は #わかりますよね? まぁimg要素を埋め込むとかRefererをアテにするとかいうのも面倒なので、「当社のシステム」とやらの中で(つまり設置したサーバから)直接アクセスさせる方が確実です。サーバ側でやるなら、毎日最初のアクセスでとか一定時間おきとかにも出来るでしょう。