現在perlにてcgiを作成しています。
以下のようなcgiを作成したのですが、POSTで受取ったデータが
標準入力より取得できません。
解決策、又は、調査方法等ご存知の方いらっしゃいましたら教えてください。
--------- a.cgi --------
#!/usr/bin/perl
print "Content-type: text/html\n\n";
if( $ENV{'REQUEST_METHOD'} eq "POST" ){
read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} );
}else{
$buffer = $ENV{'QUERY_STRING' };
}
print <<"HTML";
<HTML><HEAD><TITLE>テスト</TITLE>
<META http-equiv=Content-Type content="text/html;">
</HEAD>
<BODY>
<FORM id=Form1 name=Form1 action=a.cgi method=post>
HTML
print <<"HTML";
<INPUT type=hidden value=aaa name=text1>
<INPUT onclick="return confirm('送信します。よろしいですか?');" type=submit value=送信 name=Button1>
</FORM>
</BODY>
</HTML>
HTML
exit;
--------------------------------------------------
$ENV{'REQUEST_METHOD'} は POST を取得できていますし、
$ENV{'CONTENT_LENGTH'} も文字数は取得できています。
どうか宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
こんにちは、
ローカルで実行してみたら、ちゃんと読み込んでましたよ。
>2つのヒアドキュメントの間にはcgiの処理があるため分けています。
この辺りでクリアしてしまってたりとか?
こんにちわ。
再度の回答ありがとうございます。
解決しました。
実は、今回の質問文には書いていなかったのですが、
a.cgiでCGI.pmを使っているのですが、
そちらの方でフォームデータの獲得ができました。
use CGI; ← すでに宣言済
$q = new CGI; ← すでに宣言済
$data = $q->param('aaa'); ← 新たに追加
上記の方法で獲得するのが普通のようでした。
ご迷惑をおかけしました。ありがとうございました。
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つにすればよかったですね。
ご指摘ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
画像が表示でnull; this.src
-
openした後、closeしないでプロ...
-
ファイルアイコンの左下に緑の□...
-
perlをバージョンアップしたら...
-
perlのrequireの動き方について...
-
Strawberry Perl for Windows ...
-
perl 正規表現でエラー
-
perl 初等プログラミングについて
-
Perlで時間の計算
-
perlについての質問
-
Perlで特定文字列から特定文字...
-
INDIRECT 横に再度抽出したい
-
Wallpaper Engineでおすすめの...
-
Perl ご教示お願い致します。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーのテキストファイルを...
-
LuaJITで日本語出力
-
表示を一覧表形式にしたいので...
-
IIS の@INC ERRORについて教えて
-
索引を目次の該当ページへ入れ...
-
HTMLからCGIへデータを引き継ぎ
-
CGIの中で異なるContent-typeの...
-
jcode.pl 使い方
-
ブラウザ表示されません大変困...
-
CGIで、ボタンを押した時に違う...
-
perlがうごきません
-
標準入力からデータが読込めない
-
ランダムに1行読込み フォーム...
-
sjisでの文字化け?
-
サーバー(UNIX)上のフォルダ...
-
検索結果テーブルの背景色を変...
-
他のWWWサーバーからHTMLを得る
-
ひらがなチェック
-
次のcgiファイルを開くには? ...
-
ソケットの使い方が分からない
おすすめ情報