- 締切済み
環境変数HTTP_REFERERを使うには?
ただ今、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); ホストアドだけを取得するとちゃんと情報が入って返って来るんですよね・・・ すみません、情報を取得できる良い方法は無いでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- txrx
- ベストアンサー率45% (83/184)
'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>" ;
- naoto0314
- ベストアンサー率34% (25/73)
すみません、 print MAIL "From: 送信者アドレス"; じゃなくて print MAIL "From: 送信者アドレス\n"; ですね。
- naoto0314
- ベストアンサー率34% (25/73)
SENDMAILを使う場合は open(MAIL,"| $sendmail $mailto"); print MAIL "From: 送信者アドレス"; print MAIL "To: 送信先アドレス\n"; print MAIL "Subject: タイトル(日本語は使わないほうがいいです)\n\n"; print MAIL "本文\n\n"; close(MAIL); という感じにやるような気がします。(うろ覚えですみません…)