他のプログラムへのPOST方式でのsubmit方法
- 処理終了後、他のプログラムへPOST方式でsubmitする方法について知りたいです。
- GET方式ではなく、POST方式で値を渡したい場合、どのような手法がありますか?
- LWPモジュールが使えないため、socketを使用して他のサーバ間の通信を考えているが、ユーザーの接続を他のサーバに引き継ぐ方法がわかりません。
- ベストアンサー
処理終了後、他のプログラムへPOST方式でsubmitして、移動する方法
処理終了後、他のプログラムへPOST方式でsubmitする方法はないでしょうか。 GET方式を使えば出来ますが、POST方式で値を渡したいのですが、可能でしょうか。 という質問があり、とても参考になりましたが、その後の処理がわかりません。 ユーザーが登録後、自分のサーバで処理終了し、 他のサーバーにある、パスワードとIDをPost方式で受け取るcgiへ引継ぎ、ログイン後の画面へ移行したいです。 そのプログラムは、GETでは、受け取れないようです。 LWPモジュールが使えないため、socketで、サーバ間の通信を考えていますが、どのようにして、ユーザーの接続を他のサーバ側に引き継いでよいのかわかりません。 お力をお貸しください。 よろしくお願いいたします。
- pion16
- お礼率77% (27/35)
- Perl
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
はい。 "document.form.submit()"の効果は,フォームのSubmit(送信)ボタンを押すのと全く同じなんです。 実験的HTMLソースを作成しました。 これを見ていただけば,理解しやすいでしょうか? このHTMLソースはページを開いたとき,Javascriptのボタンを押したとき,Submitのボタンを押したとき,3つのいずれかでフォームの送信動作(action)を実行します。 <FORM name=MYFORM action="javascript:alert('送信')"> <input type=submit> <input type=button value="JavaScriptのボタン" onClick="javacsript:document.MYFORM.submit()"> </FORM> <SCRIPT language="JavaScript"> <!-- document.MYFORM.submit(); --> </SCRIPT>
その他の回答 (1)
- onosuke
- ベストアンサー率67% (310/456)
1.元サーバ: POSTさせたい内容のフォームを含むHTMLを元サーバで作成。 そのHTMLの最後に,JavaScriptの"document.form.submit()"含ませておく。 この作成したHTMLページをユーザへ返送。 2.クライアント側ブラウザ: JavaScriptの実行により,次のサーバへのPOSTリクエストを発行。 上のような方法で,うまくいきませんか? サーバ間通信をどうしても使いたいのなら,元サーバは一時的にReverseProxyとして動作させる必要がありますね。具体的には以下のような流れ。 元サーバ:次のサーバへPOSTリクエスト ↓ 次のサーバ:元サーバへその結果を返す。 ↓ 元サーバ:次のサーバから受け取った結果をクライアント側ブラウザへ返す。 ↓ クライアントには,次のサーバの結果のみが返る。
お礼
早速のご指導ありがとうございます。 なにも、サーバー間通信しなくても、良いのですね。 相手側が、Refererで制限をかけてくれるようなら、JavaScriptを使いたいと思います。 サーバ間通信は、なるべくなら避けたかったので、とても参考になりました。 JavaScriptは、あまり詳しくないのですが、 document.form.submit()を使うと、cgiへフォームして、その結果を見て、別のところに、フォームをさらに投げられると言うことが出来るのでしょうか?
関連するQ&A
- 処理終了後、他のプログラムへPOST方式でsubmitする方法
処理終了後、他のプログラムへPOST方式でsubmitする方法はないでしょうか。 GET方式を使えば出来ますが、POST方式で値を渡したいのですが、可能でしょうか。 (JavaScriptは使わず。)
- ベストアンサー
- Perl
- ブラウザを使用しないでプログラムから変数を送る方法
通常、 ・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の処理速度を上げる方法があれば教えて下さい。 よろしくお願いします。
- 締切済み
- JavaScript
- POSTでデータを送信する方法。
他のサーバーのCGIに対してPOSTでデータを送信する方法を探しています。 Perlバージョンは5.8 使用可能モジュールはPerl5.8 標準モジュール もしくはPurePerlモジュール この環境でPOSTを扱う方法をご存知でしたら、教えていただきたく思います。
- 締切済み
- Perl
- 自サイトから外部サイトにPOSTでジャンプする方法
Perl/CGIの質問です。 自サイトのCGIでいろいろな処理(データベースのインサートなど)を行った後、 最後に外部サイトにPOSTで移動したいのです。 locationの場合、GetなのでNGです。(postしか外部サイトがパラメーターを受け取ってくれません。) 私の知る限りSocketでもpostできるということはわかったのですが、同時に移動は できませんよね?内部処理としてPOSTできるだけですよね? 簡単に言えばlocationをPOSTで送りたいということです。 どなたかよい方法をご教授いただけますようお願いいたします。
- ベストアンサー
- CGI
- LWPでPOST送信した後に送信先に移動したい
LWPで別サーバーのtest.cgiに以下のようなコードで POST送信しています。 use HTTP::Request::Common; use LWP::UserAgent; $query="param1=dummy"; $ua = LWP::UserAgent->new(); $req = HTTP::Request->new(POST => "http://xxx.xxx.xxx/test.cgi"); $req -> content_type('application/x-www-form-urlencoded'); $req -> content($query); $res = $ua->request($req); $success = $res -> is_success; if(!$success){ die("error"); } $con = $res -> content; この場合、$conにtest.cgiの出力が入るだけで、 URLのhttp://xxx.xxx.xxx/test.cgiに遷移することはできません。 HTMLのformタグでPOST送信したときのように、 POSTでデータを送信してかつ、その送信先に移動するということはできるのでしょうか。 LWPでなくてもいいです。 要するにHTMLのformタグでのPOST送信を手動ではなく、自動で行いたいわけですが、 <form action="http://xxx.xxx.xxx/test.cgi" method="post"> <input type="hidden" name="param1" value="dummy"> </form> このようなタグのあるHTMLを表示して、 JavaScriptでonLoadでsubmitすればできるのですが、 JavaScriptを使っているとSSLの場合にセキュリティのアラートがでる場合があるので、 できればPerlだけでできないかと思ったのです。
- 締切済み
- Perl
- VBAでIEを操作submit処理について
ExcelVBAでIEを操作する処理について勉強中です。 formで、nameが定義されておらず、submitが複数(4つ)ある場合です。 HTMLが下記記載の場合で、submit”A”をクリックしたいです。 <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="A"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="B"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="C"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="D"></td></form> VBAでのsubmitの記述を下記で試してみたのですが、うまくクリックできません。 ObjIE.document.forms(0).Action = "XXXX/admin.cgi" ObjIE.document.forms(0).submit どのように変えたらよいのでしょうか。。。 ご教授お願い致します。
- ベストアンサー
- インターネットビジネス
- 毎日プログラムを終了させる方法
こんばんわ。 vb6で、サーバー/クライアントシステムで、10人ほどユーザーをもつシステムがあります。 毎日、夜中にサーバーが定期的な処理をします。 (その日全員が行った作業のバックアップをとります) その際に、全10人のクライアントのプログラムを終了させる必要がありますが、サーバーから自動的にvb6のプログラムを終了させる方法がありますでしょうか? ツール費用などかかったり、方法がなければ運用でカバーしてもらうしかないでしょうか。 何かよい方法があればご教授願います。
- ベストアンサー
- Visual Basic
- Submitしたボタンを知る方法は?
<form onsubmit="function()"> <button type="submit" id="button1" name="cmd" value="1">1番を選ぶ</button> <button type="submit" id="button2" name="cmd" value="2">2番を選ぶ</button> </form> とした場合に、function()内で、押したボタンを知るにはどこを見ればよいでしょうか? ちなみに、このあと適当なcgiにpostし、name,valueはそちらで処理する予定ですので、この2つの要素については大幅な変更は出来ません。
- 締切済み
- JavaScript
- 他ホストからのPOSTを防ぐ方法
php.iniのregister_globalsをOffにすることで不要な GETパラメータを受け付けないようにすることができますが、他ホストから、<form metho=POST acrion=http://***.com/xx.php> などとした場合、他ホストからPOSTできるわけで、 結局、他ホストからPOSTできないようにしないとrgister_globalsをOnにした時と、セキュリティーはあまり変わらないようか気がするのですが、 他ホストからPOSTできなくする方法はありますでしょうか? 現在、思いつくのはPHPに限らず以下の方法ですが、 いずれも完璧ではないような気がします。 1.refererチェック(100%で有効ではないらしい) 2.Sessionによる認証チェック(認証済みユーザなら結局、同一ブラウザを使い他ホストのページからPOSTできる)
- 締切済み
- PHP
お礼
ページを開いたときそのまま送るのは、まさに必要としていた機能です。 おかげさまで出来そうです。ありがとうございました。