• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perl cgiの変数の受け渡しができません。3)

Perl CGIの変数の受け渡しができない

このQ&Aのポイント
  • Perl CGIの変数の受け渡しが上手くいかないという問題が発生しています。
  • 質問文章の中で、入力ページと入力確認ページのフォームデータが正しく受け渡されていないことが示されています。
  • 問題の原因を特定するために調査したが、解決策が見つからないため、アドバイスを求めています。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

$qは何でしょう? おそらくCGIオブジェクトだと思います。そうであるなら http://perldoc.jp/docs/modules/CGI-2.89/CGI.pod より > 新しい問い合わせオブジェクトの作成(オブジェクト指向スタイル): > $query = new CGI; > これは(POSTとGETメソッドの両方からの)入力を解析し、 $queryと呼ばれるperl5オブジェクトに格納します。 と、あります。つまり、 > if ($ENV{'REQUEST_METHOD'} eq "GET") {# GETでの受信 (略) > print "POST=$formdata"; >} の部分はまったく無意味なコードです。CGIモジュールを使う理由の一つは、こういうコードを書かなくても、簡単にパラメータ受けとれる、ということです。 内容はparamメソッドで取りだせます。 ・これが出力したHTMLを「ソースを見る」等で確認しました? pメソッドは<p>タグの構造をperl上で表現するためのものです。 $q->p( "aaaa", $q->strong("BBB") , "ccc" ) → <p>aaaa<strong>BBB</strong>ccc</p> といったように。こうすると、Perlでの文法の構造と、HTMLの文法構造が一致するわけです。 それをまったく無視してるので、できあがったソースが無茶苦茶になってます。 そのせいで、そもそものデータが送られてない可能性もあります。 formを書くなら http://perldoc.jp/docs/modules/CGI-2.89/CGI.pod#pod125011 あたりを読んでください。 正しい文法かどうかもわからないなら、各種チェッカーがありますから、使ってください。 http://validator.w3.org/ http://openlab.ring.gr.jp/k16/htmllint/index.html http://users.skynet.be/mgueury/mozilla/ (firefoxのアドオン) ・前の質問(http://okwave.jp/qa/q7453554.html)から > ラクダ本の上巻は必須でしょうか? 下巻は、当然、上巻の続きですから、上巻を読んでいること前提で書かれています。 他の資料で上巻相当のことを理解しているのなら不要かもしれません。 が、これまでのやりとりを見ていると、とてもそうには見えません。 ラクダ本はあまり初心者向けではないので、今すぐに、とは言いませんが、将来続けていくなら読んでおいた方がいいです、

kmwrod
質問者

お礼

大変詳しいご指摘ありがとうございます! htmlの知識が足りないことがわかりましたので、そちらから勉強していきたいと思います。 htmlもよくわかっていないので、まずはhtmlで表示を作ってから、CGIプログラムに落とし込む、といった作り方をしていこうと思います。 本当にありがとうございました。

関連するQ&A