• ベストアンサー

どこが悪いのかわかりません!すごい簡単な実験なのですが…

まず、index.htmlを作成しました。 これは正常にアップもブラウザ展開もできました。 そのソースは以下です。ファイル名はindex.htmlです。 <HTML> <HEAD> <TITLE>アンケート</TITLE> </HEAD> <BODY> <FORM METHOD="POST" ACTION="keisan.cgi"> 身長と体重をいれましょう <INPUT TYPE="TXET" SIZE="50" NAME="SINTYOU"> <INPUT TYPE="TXET" SIZE="50" NAME="TAIJYUU"> <INPUT TYPE="SUBMIT" SIZE="50" VALUE="OK!"> <INPUT TYPE="RESET" SIZE="50" VALUE="No!"> </BODY> </HTML> 次にcgiを作成しました。 上記のSINTYOUとTAIJYUUの数値を足算した結果を出す、ものすごく簡単なcgiです。 そのソースは以下です。 ファイル名はkeisan.cgiです。 #!/usr/bin/perl #REQUIRE 'STDIN.TXT'; #KEISANN $SINTYOU=$FORM{'SINTYOU'}; $TAIJYUU=$FORM{'TAIJYUU'}; $GOUKEI=$SINTYOU+$TAIJYUU PRINT "CONTENT-TYPE:TEXT/HTML\n\n"; PRINT "<HTML><HEAD><TITLE>AAAA</TITLE></HEAD>"; PRINT "<BODY> <$GOUKEI></BODY></HTML>"; 以上です。 パーミッション設定とか、パスは合っています。 どこが間違っているのか教えていただければ幸いです。 数学で言えば、 『1+1は何?』というような、めちゃくちゃ初心者的な馬鹿なミスがどこかに潜んでいるはずなのですが、 どこを調べてもわかりません。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

> サーバ内部でエラーが発生しました。 cgiスクリプトの2行目に use CGI::Carp qw(fatalsToBrowser); と、追加すると(実行環境が悪いとだめですが)詳細なエラーが表示されるようになります。 > 以上です。 と、ありますが、省略している部分もありますよね? 本当にこれで全てだとしたら $FORM{'SINTYOU'}や$FORM{'TAIJYUU'}には値が入っていません。送信されたフォームの内容を受取る処理が必要です。 そんな事しってる…ということでしたら失礼。 どこかのスクリプトのみようみまねで$FORM{…}には値が入っていると勘違いしてる人もたまにいるので。 ついでに。 <$GOUKEI> これもHTMLとして問題あり。 これではCGIとして動くようになっても結果が画面に表示されない。 ブラウザに知らないタグだと認識され、無視されてしまう。

investorgoo
質問者

お礼

有難うございました。私もその勘違いの一人です(^_-)-☆もっとHTMLやPerlやCGIの勉強しないとダメですね。HTMLだけで計算処理できるようになれば楽なのですが、世の中甘くないですね。

その他の回答 (3)

  • estea
  • ベストアンサー率44% (39/87)
回答No.3

$GOUKEI=$SINTYOU+$TAIJYUU に ; が抜けてるのもそうだし, content-type の行もきになるけど, そもそも require とか print って大文字でも 通ったっけ?

investorgoo
質問者

お礼

有難うございました。早速試してみます。しかし、COMの世界はデリケートだぁ!

  • c_works
  • ベストアンサー率66% (6/9)
回答No.2

$GOUKEI=$SINTYOU+$TAIJYUU; ここの最後のセミコロン抜けでは? あとindex.htmのformタグが閉じ忘れているような・・・ <FORM METHOD="POST" ACTION="keisan.cgi"> 身長と体重をいれましょう <INPUT TYPE="TEXT" SIZE="50" NAME="SINTYOU"> <INPUT TYPE="TEXT" SIZE="50" NAME="TAIJYUU"> <INPUT TYPE="SUBMIT" VALUE="OK!"> <INPUT TYPE="RESET" VALUE="No!"> </FORM>

investorgoo
質問者

お礼

気付けばたいしたことの無い、マジックのトリックみたいですね。『校正』という仕事が成立している理由がよくわかります。有難うございました。

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

で、具体的にどういうエラーが出るのですか? ※見たところ、セミコロンが足りないようですが・・・

investorgoo
質問者

補足

以下のようなメッセージがサーバーから戻ってきます。 残念ながら、サーバ内部でエラーが発生しました。 「CGIプログラムの中の間違い」「または間違った設定」「完了できない要求」に遭遇し、処理を停止いたしました。 まことに申しわけございませんが、上記エラーを修正の上、再度接続し直してみてください。

関連するQ&A