重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

すみません、これで最後にします・・・
http://oshiete.goo.ne.jp/qa/7445617.html

結局getによるデータ受信の方もできませんでした。

やはりPOSTに戻ってやってみると、$ENV{'CONTENT_LENGTH'}の値は入っています。

文字の長さが入っているということは、文字列が入っているだろうということなので、

後は文字を読み込むだけのはずです。
となると
read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'});
このコードが間違っているのでしょうか?

A 回答 (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";
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/05/01 11:31

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