#1094(海豚氏)の書き込みを引用します:
>#1092(わかやま神氏)の書き込みを引用します:
>>HTTP_REFERERに比較する情報と違う文字(数値)が1つでもあれば、
>>その時点ではねられてしまうでしょうね。
>>「特定の情報が含まれている」とすれば出来るかも。
>>やり方は・・・あ、3分たっちゃった、時間がないのでまた今度。
>>
>>出来る出来ないは別として。調べてみましょうか?
>>進展なければ、どなたか代返お願いします。
>
>申し訳ありませんが、是非御願い致しますぅ。(すりすり)
環境変数に「HTTP_HOST」と「REQUEST_URI」ってのがあります。
「HTTP_HOST」はホスト名を「REQUEST_URI」はCGIのパスを取って来ます。
でも、このままじゃ使えないので、結合します。
で、こんなのでどうでしょう?
$ref = $ENV{'HTTP_REFERER'}; #リンク元
$come_url = 'http://*********/*********/*********/*********/___.htm';
$for_url = 'http://www.yahoo.co.jp/';
$this_url = 'http://'.$ENV{'HTTP_HOST'}.$ENV{'REQUEST_URI'};
$bbs_ok = ($ref eq $come_url || $ref eq $this_url) ? '1' : '0' ;
if ($bbs_ok == 0) {
print "Location: $for_url\n\n";
exit;
}
赤い行は、変数$this_urlに「http://+ホスト名+CGIのパス」と結合し代入しています。
つまり、「http://*****/cgi-bin/*****/bbs.cgi」となる訳ですね。
試してみたらそれなりに動きました(あちきのサイトでは)
スプリクトはこちら
使われるなら適当に修正して下さい。