こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

リンク元制限

同じような機能で使いやすいスクリプトがPerlでは見つからなかったため、phpのスクリプトを初めて設置してみました。
それで、phpの改造方法がわからなくて困っております。
以下Perlのサブルーチンのようなものを、配布されているphpに付け足して、リンク元制限を行いたいと考えていますが、phpでも同じようなことができますでしょうか?できるのでしたら方法を教えていただければ幸いです。宜しくお願いいたします。
sub referer{
$InURL[0] = "http://a.domain.com";
$InURL[1] = "http://b.domain.com";
local($match) = 1;
foreach (@InURL) {
if ($ENV{'HTTP_REFERER'} =~ /$_/) { $match=0; last; }
}
if ($match) {
if ($lockflag) { &unlock; }
print "";
exit;
}
}

投稿日時 - 2006-12-27 00:06:05

QNo.2627715

すぐに回答ほしいです

質問者が選んだベストアンサー

PHPに変えてみると下のような感じになると思います。

function referer() {
$InURL[0] = "http://a.domain.com";
$InURL[1] = "http://b.domain.com";
$match = 1;
foreach($InURL as $_v) {
if (preg_match("/$_v/",$_SERVER['HTTP_REFERER'])) {$match = 0;break;}
}
if ($match) {
if ($lockflag) { unlock(); }
print "";
exit;
}​
}

#$lockflagのスコープはグローバルではない点に注意してください。

投稿日時 - 2006-12-27 02:00:38

補足

別の方法にて問題解決しました。どうも有難うございました。

投稿日時 - 2006-12-27 20:15:54

お礼

ご回答ありがとうございます。
教えていただいたものを追加してみましたところ、以下のようなメッセージが表示されてしまいます。
Parse error: syntax error, unexpected '?' in /virtual/user/public_html/aa.domain.com/link.php on line 529

改造したいスクリプトはhttp://php.s3.to/で配布されているPHPリンクカウンターです。link.phpにアクセスすると通常はランキングが表示されますが、指定したアドレス以外からのアクセスはランキング画面で拒否するように出来ればと考えています。
教えていただいたソースをlink.phpのどの部分にどのように設置すれば正常に動作するようになるか、どなたかご教授いただけませんでしょうか。
大変お手数ですが、宜しくお願いいたします。

投稿日時 - 2006-12-27 18:02:12

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問