CGI-BBS > CGI > Perl > 計算プログラム作成にあたって


カレッヂ
カレッヂ


質問者 まこと  投稿日 6/26(火) 12:41:14
A=((0.880241-0.00796302*X)*X-17.8692)-0.43429448*LN(0.01933862*P)として、
入力 X=60% P=6mmHgとして、出力T=42.672℃となるCGIを作成する場合、
<html>
<head>
<title>計算</title>
</head>
<body>
<form method=post action="keisan.cgi"> x=
<input seze=5 type=text name="x"> p=
<input seze=5 type=text name="p"><br>
<br>
<input type="submit" name="計算" value="計算">
</form>
</body>
</html>
このように記述し、XとPに数値を入れてボタンを押すとTを出力したいのです。
下記のような記述は間違っているでしょうか?

#! c:/usr/local/bin/perl
# baitaibusseikeisan.cgi

use CGI;

print "?x(%)=";
$x = <STDIN>;
chop($x);
print "?p(mmhg)=";
$p = <STDIN>;
chop($p);
$t = 12.5;
$mess = sprintf("t=%04.4fc", $t);
print "$mess\n";

print "\n";
print "?x(%)=";
$x = <STDIN>; chop($x);
print "?t(c)=";
$t = <STDIN>; chop($t);
$mess = sprintf("p=%04.4fmmhg", $p);
print "$mess\n";

print "\n";
print "?x(%)=";
$x = <STDIN>; chop($x);
print "? t(c)=";
$t = <STDIN>; chop($t);
$h = 6;
$mess = sprintf("h=%04.4fkc\/kg", $h);
print "$mess\n";

exit;

ご指導いただきたくおねがいします。
回答者 しあわせのツボ  [削除]  投稿日 6/26(火) 18:47:57
perlでない言語(おそらくC)からの方とお見受けします。
結論から言うと、期待通りの動作はしません。
webのフォームから入力されたものは、STDINに「x=60&p=6」のような形で入ってきます。
はじめにSTDINを読み込み、それをxの値とpの値に分離し、計算した上でHTMLを出力する必要があります。
これはCGIのお約束ごとですので、使用する言語がperl以外でも同じです。

それぞれのルーティンについては、レスキューさんのMinichatあたりが参考になるでしょう。

返信(回答)する


Web裏技