- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:標準入力からデータが読込めない)
標準入力からデータが読込めない
このQ&Aのポイント
- 現在perlにてcgiを作成しています。標準入力からデータを取得できずに困っています。
- 作成したcgiではPOSTで受け取ったデータを標準入力から取得できません。
- 解決策や調査方法を知っている方がいれば教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、 ローカルで実行してみたら、ちゃんと読み込んでましたよ。 >2つのヒアドキュメントの間にはcgiの処理があるため分けています。 この辺りでクリアしてしまってたりとか?
その他の回答 (1)
- g_p_
- ベストアンサー率53% (28/52)
回答No.1
こんにちは、 >$ENV{'REQUEST_METHOD'} は POST を取得できていますし、 >$ENV{'CONTENT_LENGTH'} も文字数は取得できています。 同じように $buffer も確認したんですか? >read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} ); これ自体には特に問題ない気がしますけどね 本題とは違いますが、 HTML を print してるヒアドキュメントは二つに分けなくてもいいんじゃないですか? 分けてもよいかも知れませんが、ターミネータは別の文字列にした方が良いかも知れません。
質問者
補足
こんにちわ。 >同じように $buffer も確認したんですか? はい。確認しました。 $bufferの中身は空でした。 >HTML を print してるヒアドキュメントは二つに分けなくてもいいんじゃないですか? >分けてもよいかも知れませんが、ターミネータは別の文字列にした方が良いかも知れません。 2つのヒアドキュメントの間にはcgiの処理があるため分けています。 質問の時は1つにすればよかったですね。 ご指摘ありがとうございました。
お礼
こんにちわ。 再度の回答ありがとうございます。 解決しました。 実は、今回の質問文には書いていなかったのですが、 a.cgiでCGI.pmを使っているのですが、 そちらの方でフォームデータの獲得ができました。 use CGI; ← すでに宣言済 $q = new CGI; ← すでに宣言済 $data = $q->param('aaa'); ← 新たに追加 上記の方法で獲得するのが普通のようでした。 ご迷惑をおかけしました。ありがとうございました。