インフォメーションBBS

[使い方] [タイトルのみ] [関連発言] [最新20発言] [過去ログ一覧]
1096 わかやま神 [RE] 2000/10/07 13:40 [修正]
RE18:ミニBBSに直接アクセスできないようにするには
#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」となる訳ですね。
試してみたらそれなりに動きました(あちきのサイトでは)

スプリクトはこちら
使われるなら適当に修正して下さい。

1個のレスポンスが付いています:
1098 2000/10/07 16:23 RE19:ミニBBSに直接アクセスできないようにするには = 海豚

[トップページに戻る]管理人 : キャメル