インフォメーションBBS

[使い方] [タイトルのみ] [関連発言] [最新20発言] [過去ログ一覧]
1012 わかやま神 [RE] 2000/05/29 17:58 [修正]
RE8:ミニBBSに直接アクセスできないようにするには
#1011(KOOL氏)の書き込みを引用します:
>とてもわかりやすいご返答本当にありがとうございます!
>現在、頂いたコードをみて下記のように書いてみました。
>ところが、どっから来てもYAHOOのページにしか飛ぶことが出来ません。
>ちなみに、if文のなかの || というのは、or にあたるものですか?
>あと ne というのは not みたいな意味なのでしょうか?
>聞いてばかりですみません...
>
>
>#!/usr/bin/perl
>$ref = $ENV{'HTTP_REFERER'};	#リンク元
>
>$come_url = 'http://*********/*********/*********/*********/___.htm';
>$for_url = 'http://www.yahoo.co.jp/';
>$this_url = 'http://*********/cgi-bin/bbs.cgi';
>
>if ($ref ne $come_url || $ref ne $this_url){
>	print "Location: $for_url\n\n";
>
>exit;
>    }
>
>require 'jcode.pl';	#漢字変換ライブラリを読み込む

HTTP_REFERERの取得した内容とif文の比較内容($come_urlまたは$this_url)
が違うからじゃないですかね?

if文の中の「||」は、”論理和”です。「ne」は”等しくない”となります。
この場合は、等しくなければ
「print "Location: $for_url\n\n";」を実行し、等しければ実行しない。
となるはずなんですが・・・

とりあえず単純に、if ($ref ne $come_url){
とすると指定先からBBSに入れますか?
(むろん書き込みは出来んだろうけど)

あ、$ENV{'HTTP_REFERER'};は、
$ref = $ENV{"HTTP_REFERER"};(ダブルクォート)じゃないですか?
(いや、シングルでもよかったかな?あれ、どっちだっけ・・・)

環境変数の内容を見れる様にテストCGI作れば一番いいんだけど。
HTTP_REFERERが使えないとか・・・
でも、下の書き込みでURL取れたって書いてあるし。

1個のレスポンスが付いています:
1013 2000/05/29 18:05 RE9:ミニBBSに直接アクセスできないようにするには = KOOL

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