人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: cross-xross
●カテゴリ:学習・教育
✍キーワード:CGI dat EQ FA Flock
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● BlackSabbath
●60ポイント

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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ