• ベストアンサー

処理終了後、他のプログラムへPOST方式でsubmitする方法

Head_Syndicateの回答

  • ベストアンサー
回答No.3

なるほど、片方がPHPでしたか。それではやむを得ないかもしれませんね。 一応お書きになったような内容で、当方の環境だと成功するのですが…。 write.cgiを呼び出すopenが失敗しているのかもしれません。失敗するとdieで そのエラーメッセージを出力してますが、これはサーバのerror_logに出力 されるので、ブラウザからでは確認できませんね。失礼しました。 ではstart.cgiを以下のように修正してみてはどうでしょう。 #!/usr/local/bin/perl $param = 'a=123&b=xyz'; $ENV{CONTENT_LENGTH} = length($param); $ENV{REQUEST_METHOD} = 'POST'; print "Content-type: text/html\n\n"; open(OTHER_CGI, "|./write.cgi") or print "error: $!"; print OTHER_CGI $param; close(OTHER_CGI); print "success!"; 要するに成功したらsuccess、失敗したらerror:でエラーメッセージを 出すようにしたわけです。Content-typeヘッダの後じゃないとちゃんと 出力されないのでその行も上に移動させてください。 ひょっとすると、CGIが実行されるときのカレントディレクトリが 違うのかもしれませんね。./write.cgiをフルパス、すなわち 例えば/my/home/directory/にあるのでしたら 「/my/home/directory/write.cgi」として指定してみてはどうでしょう? (URLではこの場合ダメです)

defd
質問者

補足

出来ました!! どうやらwindows上で行っていたのが原因のようで、 linux で行ったところ、success表示とともに、ファイルが生成されました。 そして、変数の受け渡しも出来ました!! 詳しい説明、どうもありがとうございました。

関連するQ&A

  • 処理終了後、他のプログラムへPOST方式でsubmitして、移動する方法

    処理終了後、他のプログラムへPOST方式でsubmitする方法はないでしょうか。 GET方式を使えば出来ますが、POST方式で値を渡したいのですが、可能でしょうか。 という質問があり、とても参考になりましたが、その後の処理がわかりません。 ユーザーが登録後、自分のサーバで処理終了し、 他のサーバーにある、パスワードとIDをPost方式で受け取るcgiへ引継ぎ、ログイン後の画面へ移行したいです。 そのプログラムは、GETでは、受け取れないようです。 LWPモジュールが使えないため、socketで、サーバ間の通信を考えていますが、どのようにして、ユーザーの接続を他のサーバ側に引き継いでよいのかわかりません。 お力をお貸しください。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • submitがおされた同時に JavaScript の処理は可能?

    質問のとおりですが、 <script>   function push(){    ★処理内容   } <script> <from action="/test/servlet/sample" method="post"> <input type="submit" valeu="ボタン" onclick="push()"> </from> でこの時 submit が押されたと同時にJavaScriptの処理も一緒に実行させたいのですが、可能でしょうか? ★の処理内容はsubmitボタンを1回押したらまたもう一回submitボタンを押されたようにする。つまりボタンを1回押したら2回分押したことと同じようにする。 とこんなかんじの処理なんですが…。 アドバイスお願いします。

  • POSTやGETの値の取得方法

    JavaScriptでPOSTやGETの値を取得するにはどうすればいいのでしょうか

  • 処理終了後、他のページへジャンプする方法

    perl での処理を終了後、他のページ(html)に自動的に飛ばしたいのですが(JavaScriptは使わずに)、どうすればよいでしょう。

    • ベストアンサー
    • Perl
  • submitボタンを表示することなく、アンカータグでpost伝送する方法

    javascriptとphpとの双方または何れか一方を用いることにより、 以下のことを実現する方法を教えて下さい。 〔記〕 「<form>タグを用いてPOST伝送する際に、submitボタンに代えて アンカータグを用いる方法」 なお、submitボタンに相当する<input>タグはhtmlソースに含まれてもよいですが、ブラウザ画面上には表示したくありません。 以上、どうかよろしくお願い致します。

  • POSTで情報を他のサーバーに渡したい。

    GETで情報を他のサーバーに転送するには header("Location: http://abc.com/abc?data=1234"); って感じでできると思うのですが POSTで送信しなければならないのでPOST送信方法を 教えてください。 なおクライアントに一瞬だけ表示させてjavascriptで POSTのフォームを作って送らせる方法があるようですが クライアントの環境に依存せずにできるようにしたいと思っています。

    • ベストアンサー
    • PHP
  • プログラム終了方法

    こんにちは。プログラム終了方法についてお教え下さい。 下記のような処理を書いています。 if(A!=B)の場合、処理を抜けてプログラムを終了させたいと思っています。 下記のコードだとテキストボックスにエラー表示をさせた後に、プログラムを終了させたいです。 ただ、現状だと~~~処理3、処理4が実行されてしまいます。 どのようにすれば、if(A!=B)でテキストボックスにエラーを出力した後にプログラムを終了できるでしょうか? gotoを使用し、真ん中の処理を飛ばす方法しか有りませんでしょうか? よろしくお願いします。 try{ ~~~処理1 ~~~処理2 if(A!=B) { textbox.text = "エラー"; //goto endfinish; } ~~~処理3 ~~~処理4 } catch { textbox.text = "エラー"; } //endfinish:;

  • ブラウザを使用しないでプログラムから変数を送る方法

    通常、 ・GETの場合 <a href=http://www.xxx.co.jp?a=1>submit</a> ・POSTの場合 <form method=post action="xxx.cgi"> <input type=hidden name=a value=1> <input type=submit value=submit> </form> のなどのHTMLでクリックまたはSUBMITボタンを押すとその特定のURLのWWWサーバーに変数が送られますよね。 これをブラウザを使用せず、サーバーのプログラム(perl)を使用して、そのプログラムを実行すると プログラムで指定した特定のURLのwwwサーバー(port 80)に変数を送る方法書き方を教えて下さい。 GETの場合、POSTの場合それぞれ教えてください。 通常、ブラウザがしていることを、プログラムでしたいと思っています。 よろしくお願いします

    • ベストアンサー
    • CGI
  • ajaxのget/post処理速度

    ユーザインタラクティブなWebプログラムをPHP5.2で作ってWindowsXP/Apahe2.0のlocalhostで動かしていますが、サーバ側にあまり負担のかからない処理の場合、Ajax(JQuery,JQuery.formプラグイン)のGET/POSTは通常のGET/POSTに比べてResが帰ってくるのが明らかに遅いのですが、これは一般的なことでしょうか? Ajaxが遅い原因としてどんなことが考えらるでしょうか? Ajaxの処理速度を上げる方法があれば教えて下さい。 よろしくお願いします。

  • 複数のsubmitボタンで押されたボタンを取得する方法

    form内の、submitボタンの値が拾えません。 1つだけsubmitボタンを設置すると値が拾えますが、 2つ以上submitボタンを設置すると拾えません。 仕様上、無理なのでしょうか? <SCRIPT language="JavaScript"> function move_post(){ alert(document.frmMvPost.btn.value); } </SCRIPT> <FORM name="frmMvPost" action="" method="post" onsubmit="return move_post()"> <INPUT type="submit" name="btn" value="テスト1"> <INPUT type="submit" name="btn" value="テスト2"> <INPUT type="submit" name="btn" value="テスト3"> </form>