外部サーバーのPHPをIMGタグで呼び出す場合
外部サーバーのPHPをIMGタグで呼び出す場合の質問です。
2か所のサーバーでサイトを運営しており、今までGoogleAnalyticsでアクセス解析をしていたのですが、Javascriptを無効にしているひとの数も収集しておきたく、ド素人ですが思い切ってPHPでログ収集をしようとしています。
ただ、あっちこっちにログファイルを残しておきたくなかったので、片方のサーバーにログ収集用のPHPを設置し、もう片方のサーバーのサイトのログも以下のような方法で収集しようと考えています。
【http://hoge.jp/サイト.html】
<!DOCTYPE html>
<html lang="ja-JP">
<head>
~
</head>
<body>
※コンテンツ
<img src="https://huga.jp/収集.php" />
</body>
</html>
【https://huga.jp/収集.php】
<?php
//画像の作成
$img = imagecreatetruecolor(1, 1);
$backGroundColor = imagecolorallocate($img, 255, 255, 255);
imagefill($img , 0 , 0 , $backGroundColor);
//画像出力
header("Content-type: image/png");
header("Cache-control: no-cache");
imagepng($img);
//後始末
imagedestroy($img);
//アクセスログ取得
$h = $_SERVER["HTTP_HOST"];// どのサイトのアクセスか分かりやすくするためにアクセスしたサイトのドメインを取得したいのです…
$ap = $_SERVER["REQUEST_URI"];// 同じくアクセスページを分かるようにしたいのです…
$rf = $_SERVER['HTTP_REFERER'];// できればどこからきた人かわかるようにしたいのです…
~
//アクセスログ吐き出し
~
?>
アクセスログ自体は吐き出されているのですが、コンソールに出るエラーと、吐き出されている内容に問題が発生し、ググりながら色々いじくってみたのですがまったく解決できずに困っています。
そこで質問なんですが、
(1)実際にhttp://hoge.jp/サイト.htmlにアクセスしてみた際、コンソールに「Refused to execute script from 'https://huga.jp/収集.php' because its MIME type ('image/png') is not executable.」というエラーが表示されます。MIME typeをどーにかしろってことだとは思うのですが、色々検索してみるのですがよくわからず、解決方法をご指南いただけませんでしょうか?
(2)別サーバーに設置したPHPではHTTP_HOSTとREQUEST_URIとHTTP_REFERERはうまく取得できないのでしょうか?もしできるやり方があれば御指南いただければと思います。ちなみに、現状では
・HTTP_HOST=「huga.jp」(hoge.jpになってほしい)
・REQUEST_URI=「/収集.php」(サイト.htmlになってほしい)
・HTTP_REFERER=「http://hoge.jp/サイト.html」(アクセス元のページURLになってほしい)
のようになってしまします。多分アクセスしたサイトが収集.php扱いになってしまっているのでしょうが、これってどうにかできるんでしょうか?
何分PHP自体ド素人なもので、用語なんかも明るくありませんので、とわかりにくい説明になっていたら申し訳ないのとともに、プロの方からすれば「こんなしょーもないことで?」と言われてしまいそうですが、どうぞよろしくお願いします。
お礼
AsarKingChang 様 ご連絡ありがとうございます。 詳しく分かりやすい説明で大変助かりました。 簡単ですが、お礼申し上げます。