あなたの習慣について教えてください!!

ただ今、CGIで独自のアクセス解析プログラムを作成中です。
相手がアクセスしてきたら、メールに転送して情報を取得出来るようにしたんですが・・・・
リンク元を取得するのに以下のようにやってみたのですが、送られてきたメールは空メール(涙)

ソース抜粋

$host = $ENV{'REMOTE_ADDR'};
$ref = $ENV{'HTTP_REFERER'};

open(MAIL,"| $sendmail $mailto");
flock(MAIL,2);
print MAIL $host . $ref;
flock(MAIL,8);
close(MAIL);

ホストアドだけを取得するとちゃんと情報が入って返って来るんですよね・・・
すみません、情報を取得できる良い方法は無いでしょうか?

A 回答 (3件)

'HTTP_REFERER'は、他のページからリンクされていないと設定されませんが、大丈夫ですか?


リンクされてますか?

サーバによっては、使えない環境変数があるので、調べてみてはどうでしょうか?
それと、'HTTP_REFERER'は、ブラウザが値を設定したはずなので、ブラウザの設定や種類などによっては、値を取得することができません。

試しに次のCGIページで全ての環境変数を表示してみてはいかがでしょうか?

$cgi = new CGI;


print"<table border>";
while( ($key,$value) = each(%ENV) ){
print "<tr><td>$key</td><td>$value</td></tr>\n";
}
print"</table>";
    • good
    • 0

すみません、


print MAIL "From: 送信者アドレス";
じゃなくて
print MAIL "From: 送信者アドレス\n";
ですね。
    • good
    • 0

SENDMAILを使う場合は



open(MAIL,"| $sendmail $mailto");
print MAIL "From: 送信者アドレス";
print MAIL "To: 送信先アドレス\n";
print MAIL "Subject: タイトル(日本語は使わないほうがいいです)\n\n";
print MAIL "本文\n\n";
close(MAIL);

という感じにやるような気がします。(うろ覚えですみません…)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報