#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取れたって書いてあるし。