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しか出力されません。
間違っている点を指摘して頂ければ幸いです。

回答の条件
  • 1人2回まで
  • 登録:2007/09/06 23:32:28
  • 終了:2007/09/06 23:48:40

回答(1件)

id:BlackSabbath No.1

BlackSabbath回答回数53ベストアンサー獲得回数42007/09/06 23:39:39

ポイント60pt

$data[0] の末尾に改行は入ってませんか?

id:cross-xross

chomp(@data)で改行削除したら出来ました。

ありがとうございました。

初歩的なところで躓いているとは情けなかったです。

2007/09/06 23:47:30

コメントはまだありません

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

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません