WEBで、データを複数プログラムに渡す処理について教えてください。


データを入力しOKボタンを押すとcgiが呼び出され、データをメールで送信するプログラムがあるのですが、
あるASPのDBサービスにもデータを保管したいと考えました。

そのASP側の設定は終わり、マニュアル通り<form action="外部URLリンク~/servlet.WebToLead?encoding=UTF-8" method="POST"><~id設定処理~>を埋め込めば、ASPへのデータ登録は成功したのですが、これをすると元のメール送信のcgi呼び出しと両立できなくなってしまいました。(1操作では1つのaction="~"しか指定できないため)

まずはcgiを呼び出し、メール送信処理をしてから、<form action="外部URLリンク~/servlet.WebToLead?encoding=UTF-8" method="POST">と同等の処理を実行させることを考えているのですが、このようなことは可能でしょうか?どうやったらできるでしょうか?

他の方法でもいいのですが、
・javascriptでは方法があるようですがクライアント依存はしたくないです
・ユーザに2回ボタンを押させたりはせず、1回のボタン押下で2つの処理を実行
の条件でお願いします。

よろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2010/01/20 00:30:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:horosco75 No.1

回答回数47ベストアンサー獲得回数5

ポイント27pt

可能です。

PerlスクリプトともASPのパラメタもないので具体的な回答はできませんが、

下記の記事を参考にcgiを書き換えてみてください

http://d.hatena.ne.jp/NekoDaisuki/20070107/1168115360

id:yanmaani

ありがとうございます、頂いたURLの内容通りやればできそうな気がしてきました。

2010/01/13 01:10:59

その他の回答3件)

id:horosco75 No.1

回答回数47ベストアンサー獲得回数5ここでベストアンサー

ポイント27pt

可能です。

PerlスクリプトともASPのパラメタもないので具体的な回答はできませんが、

下記の記事を参考にcgiを書き換えてみてください

http://d.hatena.ne.jp/NekoDaisuki/20070107/1168115360

id:yanmaani

ありがとうございます、頂いたURLの内容通りやればできそうな気がしてきました。

2010/01/13 01:10:59
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント27pt

HTML のみでは不可能です。

基本的には JavaScript で2つの form 送信を行うことを考えた方がよいでしょう。

・javascriptでは方法があるようですがクライアント依存はしたくないです

この程度であれば、ほとんど差がないか吸収するバッドノウハウがあります。

また、依存性を吸収してくれるライブラリ等を使用するのも手でしょう。


もう一つの方法としては HTML からは CGI または ASP の片方のみデータ送信し、

データを受け取った方はもう片方に HTTP or HTTPS 経由でデータを渡すことが出来ます。

仕組みはややこしくなりますが、片方だけ呼ばれると言った不具合等は防ぎやすくなります。

id:yanmaani

ありがとうございます、依存性吸収のノウハウを検索したら、意外に情報が多く驚きました。

こちらも検討してみます。

2010/01/13 01:29:57
id:naninanida11 No.3

回答回数193ベストアンサー獲得回数3

ポイント18pt

vbscriptでも作れます。

http://q.hatena.ne.jp/1263310161

id:mattn No.4

回答回数104ベストアンサー獲得回数23

ポイント18pt

・同じドメインであればAjaxでPOST後にsubmit

・違うドメインであればAjaxでGET後にsubmit

となる様にonsubmit等でフックしてあげればクライアント側だけで出来なくもないですが、CGI側でやるのがトランザクションも制御出来て良いかと思います。PerlであればPOST先のCGIでother-hostへ転送する様なスクリプトは...

use CGI;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);

my $q = CGI->new;
my $url = 'http://other-host/regist.cgi';
my %formdata = $q->param;
my $request  = POST($url, [%formdata]);
my $ua = LWP::UserAgent->new;
my $res = $ua->request($request);

で行けるかと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません