CGI_同じIPが配列内にあったら指定のURLにLocationしたいのですが・・・
[上に]
[前に]
[次に]
たいちょー
2000/03/01(水) 18:22:37
あるファイルに日付とIPがコンマ区切りで入っています。
新しく来てくれた人ののIPをENV{'REMOTE_ADDR'}でとって
上記ファイルとマッチングをかけてエラーメッセージのファイルにLocationしたいのですが、うまくいかずにそのままOKの場合のページに行ってしまいます。
文法にエラーは出ていないので、何がおかしいのかわかりません。
どなたかお知恵を拝借させてください。
よろしくお願いします。
$ip_check = '○○.log';
$sorry = '◆◆.html';
$ok = '□□.html';
open(IPCHECK,">$ip_check");
&lockfile(IPCHECK);
if(~/ENV{'REMOTE_ADDR'}/){
print"Location $sorry";
}
else{
print"Location $ok";
}
close(IPCHECK);
sekita
2000/03/01(水) 18:39:10
$_の¥nはchop or chomp で削除しているでしょうか?
コウノトリ
2000/03/01(水) 21:14:24
>open(IPCHECK,">$ip_check");
あれ?この時点でファイルの内容が消えちゃいませんか?
元祖パラパラ系
2000/03/01(水) 21:29:24
$ip_check = '○○.log';
$sorry = '◆◆.html';
$ok = '□□.html';
open(IPCHECK, "$ip_check");
while (<IPCHECK>) {
if($_ !~ /$ENV{'REMOTE_ADDR'}/){
print"Location: $sorry\n\n";
} else {
print"Location: $ok\n\n";
}
}
close(IPCHECK);
EMI
2000/03/01(水) 21:34:13
>元祖パラパラ系さん
これだと、最初のが一致しない場合に$sorryに飛んじゃいますけど。
$ip_check = '○○.log';
$sorry = '◆◆.html';
$ok = '□□.html';
open(IPCHECK, "$ip_check");
while (<IPCHECK>) {
if($_ =~ /$ENV{'REMOTE_ADDR'}/){
close(IPCHECK);
print"Location: $ok\n\n";
exit;
}
}
close(IPCHECK);
print "Location: $sorry\n\n";
たいちょー
2000/03/03(金) 12:04:23
教えてくださった方法はすべて試してみました。結果EMIさんの方法で$sorryに無事Locationすることができました。
ご回答をいただいたみなさま、どうもありがとうございました。
たいちょー
2000/03/03(金) 12:05:11
[[解決]]
忘れてました。ごめんなさい。
[上に]
[前に]
[次に]