• 締切済み

CGIでフォームデータを取得できません

CGI(perl)の標準入力についてお伺いいたします。 PC上でテストし動作を確認したCGIをプロバイダのCGIサーバに移植しましたが、 正常に実行終了するものの、標準入力によるフォームデータの取得ができません。 フォームデータを受け取る変数が空になってしまいます。 PCとプロバイダのCGIサーバとでは、CGIスクリプトの記述方法が異なるのでしょうか。 書籍、ネットをだいぶ調べましたが、解決策が見当たりませんでした。 このような現象の原因について、お心当たりのある方がおられましたら、 ご教示いただきたいです。 (1)PC動作環境 a.OS: Windows 7 b.ブラウザ : Interne Eexplorer 11 c.CGIサーバ: Apache 2.4 d.perl : Activeperl 5.20 (2)CGIスクリプト(標準入力の部分) 尚、フォームでは、method="POST"を指定しております。 # フォームデータの取得 if($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $query, $ENV{'CONTENT_LENGTH'}); } else { $query = $ENV{'QUERY_STRING'}; }

みんなの回答

  • kichi8000
  • ベストアンサー率41% (660/1584)
回答No.1

せっかくのPERL5だから、組み込み関数を使いませんか。 use utf8; #必要があれば文字コード宣言 use CGI; #htmlオブジェクトの使用宣言 $q= new CGI; #htmlオブジェクト格納 $q->~ で呼び出し $query = $q->param("status"); #記述例 htmlフォーム(submit)のname=statusタグ内データの読み出し

krik1
質問者

お礼

さっそくご回答いただき、お礼申し上げます。 use CGIは一度実行してみたのですが、もう一度試してみたいと思います。 あと環境変数%ENVの中身を調べようと思っていたところです。

関連するQ&A