cross-xross回答ポイント 60ptウォッチ

CGIのPerlに関しての質問です。

どうか回答よろしくお願いいたします。


#! c:/perl/bin/perl

getForm();

open (FILE, "<./pass.dat") or die;
eval { flock(FILE, 1) };
@data = <FILE>;
close (FILE);

print <<END;
Content-type: text/html

<html>
<head><title>ユーザ認証</title></head>
<body>
END

if ( $form{'id'} eq $data[0] ){
print "Yes\n";
} else {
print "No\n";
}

print <<END;
</body>
</html>
END


#####

sub getForm{

my ($query, $pair);

if ($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
}
else{
$query = $ENV{'QUERY_STRING'};
}
foreach $pair (split(/&/, $query)){

my ($key, $value) = split(/=/, $pair);

$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/eg;

$form{$key} = $value;

}
}

ファイルの文字列と入力文字列を比較して、合致した場合はYes、違う場合はNoを出力するプログラムです。

しかしながら、合致しているにも関わらずNoしか出力されません。
間違っている点を指摘して頂ければ幸いです。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2007-09-06 23:32:28
終了日時
2007-09-06 23:48:40
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

Perl1679Flock23QUERY_STRING21CGI2023EQ46FA35HTML5036プログラム5048Key358

人気の質問

メニュー

PC版