• ベストアンサー

cgiでのデータ受信

すみません、これで最後にします・・・ http://okwave.jp/qa/q7445617.html 結局getによるデータ受信の方もできませんでした。 やはりPOSTに戻ってやってみると、$ENV{'CONTENT_LENGTH'}の値は入っています。 文字の長さが入っているということは、文字列が入っているだろうということなので、 後は文字を読み込むだけのはずです。 となると read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'}); このコードが間違っているのでしょうか?

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

  • ベストアンサー
回答No.1

すごい原理的な仕組みを使って、CGIのパラメータを取得しようとしているみたいですけど、CGI.pmくらいは使いましょう。(cgi-lib.plじゃなくて) CGI.pmなどのモジュールを使わずPOSTが動いているのを確認したいだけなら、つぎのコードで確認できます。表示がくずれるので、空白2文字を全角空白にしていることに注意。 --- foo.html <html>  <head>   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />   <title>TEST</title>  </head>  <body>   <form method="POST" name="hoge" action="foo.cgi">    <div>TEXT DATA: <input type="text" name="NAME"></div>    <input type="submit" value="SEND">   </form>  </body> </html> --- foo.cgi #!/usr/bin/perl print "Content-type: text/plain; charset=utf-8\n\n"; read STDIN, $data, $ENV{'CONTENT_LENGTH'}; print "$data";

kmwrod
質問者

お礼

返信ありがとうございます。 今からCGI.pmを学習するのは大変ですが、やってみます。 おすすめのサイトとかありますでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A