プロが教えるわが家の防犯対策術!

度々すみません。


~~~~HTML~~~~
<FORM action="test.cgi" method="POST" NAME="FORM">
<div>最大攻撃力:<INPUT type="text" NAME="att"><br></div>
<div>防御力:<INPUT type="text" NAME="def"><br></div>
<div>クリティ時与ダメ:<INPUT type="text" NAME="cyo"><br></div>
<div>クリティ時被ダメ:<INPUT type="text" NAME="chi"><br></div>
<div>EXD時与ダメ:<INPUT type="text" NAME="eyo"><br></div>
<div>EXD時被ダメ:<INPUT type="text" NAME="ehi"><br></div>
<INPUT type=submit value="実行">
<INPUT type=reset value="リセット"></TD>
</FORM>

~~~~CGI~~~~
#! c:/perl/bin/perl

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


foreach $pair(split(/&/,$query)) {
($l_set,$value) = split(/=/,$pair);
$form{$l_set}=$value;
}
$att=$form{'$att'};
$def=$form{'$def'};
$cyo=$form{'$cyo'};
$chi=$form{'$chi'};
$eyo=$form{'$eyo'};
$ehi=$form{'$ehi'};

$hi=int((($chi*2+$def)+(($ehi*2+$def)/1.2))/2);
$yo=int(((($att-$cyo*2)*2)+(($att*1.2-$eyo*2)*2))/2);




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

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN">
<html>
<head><title>被ダメテスト</title></head>
<body><p>相手攻撃力は約<b>$hi</b>です。</p>
<p>相手防御力は約<b>$yo</b>です。</p></body>
</html>
END

このまま数値を入力して実行しても、「0」と出てきてしまいます。
読み込み(代入?)が出来ていないのでしょうか?

間違えている部分があればご指摘ください。
※コンパイラはApacheです。

A 回答 (1件)

> <div>最大攻撃力:<INPUT type="text" NAME="att"><br></div>


htmlのformでname="att"にしているのに、

> $att=$form{'$att'};
perl側では'$att'になってますよ。

$att=$form{'att'};
としたかったのではないですか?
    • good
    • 0
この回答へのお礼

そのとおり実行したらきちんと表示されました!


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

お礼日時:2006/08/10 13:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!