• 締切済み

Perlから他のcgiへPOSTでデータ送信

この手の質問はたくさんありましたが、具体的な解決がなく、よく理解できなかったので質問させていただきます。 Perlで受け取ったデータを他のcgi(hoge.cgi)にPOSTで送るにはどうすればよいのでしょうか? JavaScriptを吐いて処理する方法もありますが、JavaScriptを使用せずにする方法を求めています。 ソケットを使うらしいのですが、その当たりの知識が全くないので過去質問などを見てもほとんど理解できません。 どなたか分かりやすく教えていただけないでしょうか?

  • Perl
  • 回答数2
  • ありがとう数1

みんなの回答

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

PerlがCGIとして動いていて、受け取ったデータをそのまま hoge.cgi の入力にしたいのであれば、最初から FORMタグを hoge.cgi 向けに書きましょう。 actionパラメーターに hoge.cgi のURLを書くだけです。 # Perlが直に POSTリクエスト送出というのは、Spam書き込みロボットに必要な技術なんで、あまり広まって欲しくないです。

  • Seravy
  • ベストアンサー率47% (118/249)
回答No.1

Googleで「Perl post」と検索するとこんなページが2番目にでてきました Perl Tips | Perl で、POST したい。  - http://perltips.twinkle.cc/perl/post.php

関連するQ&A

  • CGI間のデータ送信について(perl)

    perlのcgiで詰まってしまったので質問します。 現在困っていることは、cgiからcgiへの変数の値の受け渡しについてです。 色々調べてやってみたのですが、うまくいきません。 送信側で print "<form action = \"sendmail.cgi\" method=\"post\">"; print "<A href =\"sendmail.cgi?$array1[0]&$array1[1]&$array1[2]&$array1[3]\">sendmail.cgi</A>"; print "<input type=\"submit\" value=\" ボタンです。 \">"; print "</form>"; として 受信側で # postでもgetでも受信できるようにする if ($ENV{'REQUEST_METHOD'} eq "GET") { $data = '1'; $testmsg = "GETで受信"; $formdata = $ENV{'QUERY_STRING'}; print("$formdata<BR>"); } elsif ($ENV{'REQUEST_METHOD'} eq "POST"){ # こちらを使用している $data = '2'; $testmsg = "POSTで受信"; $length = $ENV{'CONTENT_LENGTH'}; read(STDIN,$formdata,$ENV{'CONTENT_LENGTH'});# $dataに受信する print("$formdata<BR>"); } else { $data = '3'; $testmsg = "受信することができませんでした。<BR>"; } としてpostにて受信しようとしています。 postのif文には入ったようなのですが、データが空っぽで何も入っていないようなのです。 何が原因なのでしょうか?助けてほしいです。

    • 締切済み
    • CGI
  • Perl/CGIを学んでいるのですが

    Perl/CGIを独学で学んでいます。 掲示板やチャットが作成できる程度です。 私はPerl=CGIと考えていたのですが(HTMLがサイト作成に使うことのように専用の言語とでもいいましょうか)、ぜんぜん違うようです。 PerlはCGI以外に Perlではどのようなことができるのでしょうか? 大まかな認識だと ビィジュアルを持たない、(VBでいうフォームパーツですかね)バッチファイルなど? で、コマンドプロンプトで動作するようなイメージがありますが(.batを起動するとメモ帳みたいなアプリではなく、特定の処理して終了みたいな) 無知な私にPerlで出来ることをお教えください。 せっかくPerl/CGIが少しは理解できているのでPerlをもっと勉強しようかとあぐねいているとこらです。 混乱しているため変な質問でしたらすいません

  • POSTでデータを送信する方法。

    他のサーバーのCGIに対してPOSTでデータを送信する方法を探しています。 Perlバージョンは5.8 使用可能モジュールはPerl5.8 標準モジュール もしくはPurePerlモジュール この環境でPOSTを扱う方法をご存知でしたら、教えていただきたく思います。

  • Perl(cgi)からPerl(cgi)への引数

    (1)Perl(cgi)から(2)Perl(cgi)へ引数(データ)を渡す方法を教えてください。 プログラムの流れとしましては、 (1):データベースを検索&該当結果の番号をリンクで表示 (2):(1)でクリックしたリンクと対応する結果を表示 となっております。 また、セキュリティの事を考えて「POST」で送りたいと考えています。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • jQueryのpostからのリクエストをCGIで受信して処理したい

    jQueryのpostからのリクエストをCGIで受信して処理したい こんにちわ。CGIはまったくの素人に近いですが、よろしくお願いします。 今作成中のページからjavascript(具体的にはjQuery)を使ってpostでリクエストをサーバに送信し、それをCGIで受け取ってカウンタを増やして返す的なことをやろうとしています。 送信側ではとりあえずページをロードしたら(view()で)リクエストを送り(下のtest.cgi)、帰ってきた値を(ID"count1"で)ページにまた反映するという形をとっています。 javascriptのpost部分抜粋 function view() {jQuery.post("../../../cgi-bin/test.cgi", {"key1":"1"}, function(data){ $("#count1").html(data) } ); }; 送信はできてるみたいなのですが受け取るCGIが問題で、「フォームからデータを送る場合」というのは山ほど解説があるのですが単純に送られてきたリクエストを受け取るのは下のプログラムではダメみたいです。 CGI部分 #!/usr/bin/perl my $counter=0; read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} ); $counter++; return("$counter"); 当初CGIが必要だとは思わずにいたので、昨日からCGIを勉強し始めたレベルの素人ですが じっくりと腰をすえて一人で解決する時間もないので、よろしくお願いします。

    • ベストアンサー
    • CGI
  • 携帯用のページに perl で post

    一般のページには、 http://test.com/cgi/post.cgi?id=123&pas=456 ・・・とかいう具合に、フォーム内容を post できますが、携帯用のページに同じことすると、うまくポストできないようです。 perl の仕様? が違うのだと思いますが、どのようにすればうまく解決できるのでしょうか。 IEから行いたいのですが、携帯用だとページが軽いので、可能なら助かります。

  • jsp内iframe(cgi)へjspデータを渡す

    はじめまして、現在jspでプログラムされたページのiframe内に perl(cgi)で組んでいるアンケートフォームを設定しております。 こちらのcgi内にjspのセッションデータを受け渡すことは可能でしょうか? 現在、色々と試行錯誤しておりますが、うまくいきません。 もし可能であれば、どなたか具体的な方法を教えていただけますでしょうか? 現在は下記のように試していることです。 ■1.jsp <input type="hidden" name="hoge" value="<%=getString(session, " hoge")%>"> こちらのhogeのvalueデータを、 ■2.jsp 親フレームの2.jspには上記のhogeセッションは反映しておりますが、 2.jsp内の下記、iframe内のcgiに反映できません。 <iframe src="http://www.hoge.com/cgi-bin/hoge.cgi" style="width:600px; heigh t:600px; scrolling:no; valign:top;" frameborder="0" method="post" name="hoge" value="<%=getString(session, "hoge")%>"></iframe> 宜しくお願いいたします。

    • ベストアンサー
    • Java
  • Ajax⇒CGI

    JavaScriptは結構知ってますが、 AjaxとPerlに関しては初心者のものです。 早速ですが質問です。 Ajaxで送信したデータをCGI(Perl)で処理して、 サーバーのテキストに保存する方法が良く分かりません。 サーバーはCGIを許可しているところを使っています。 どなたか詳しい方、ご教授お願いします!

  • SSIでPOSTデータを受け取りたい

    ○○.shtml中で <!--#exec cmd="××.cgi" --> としてcgiを実行しています(Perl) 表示は問題なくされています。 ここでフォームボタンを作りPOSTで同一の○○.shtmlファイルにデータを送りその中の××.cgiでデータを受信しその結果を表示させたいのですが、どうすればいいのでしょうか。 <form action="○○.shtml" method="POST"> ~中略~ <input type=submit value="送信"></form> こんな感じですと当然ながら○○.shtmlそのものはデータを処理しませんので、表示できません。 cgiに直接POSTでデータを送れば当然ながら○○.shtmlは関係ない世界になってしまいます。 試しに○○.shtmlへPOST送信をしてみても Method Not Allowed The requested method POST is not allowed for the URL /××/△△/○○.shtml. と表示されます。 どなたかご存じの方解決方法を教えてください。 よろしくお願いします。

    • 締切済み
    • CGI
  • コマンドラインでGET or POSTできますか?

    ふとしたことで、cgiからcgiを呼び出す必要に迫られてしまいました。そこで、呼び出す側はsystem()でやるとして、引数はどのように渡したらいいのでしょうか。 ブラウザでは、メソッド指定で呼び出せますが、コマンドラインでgetまたはpostで渡す方法というのはありますか? /hoge.cgi?name=value というのをPOSTでやりたくて、 $tmp = "name=value"; system("echo $tmp | perl hoge.cgi"); とか試して爆沈しました...(汗

    • ベストアンサー
    • Perl

専門家に質問してみよう