2011-01-25 31 views
0

私はフォームを持っています私はコントロールを持っていないサーバー上にあります。それをform1と呼ぶことができます。私はform1のPOST要件を知っています。私は自分のフォームを作成してそのフォーム1にデータを送信しています。それを1つのform2と呼ぶことができます。 Form1はチケット番号を返します。他の情報(私が大丈夫です)と一緒に、そのチケット番号を部門データベースに格納する必要があります。私はform1(ITsフォーム)にデータを送信し、form1からの応答を部門データベースに保存するにはform2(私のフォーム)が必要です。フォームの送信応答を送信

これを行う最も簡単な方法は何ですか?私は数時間オンラインで検索し、空になった。私はjavascriptからiFrame、Ajax、jQueryに行きました。そして、私は今失われています。

私のサーバはPHPサーバであり、そのサーバはASPサーバです。

ありがとうございます。

答えて

0

これはクライアント側の操作ではなく、サーバー側の操作です。 "form2"の必要はありません。これにはcurlを使用します。このようなもの:

// Set up a connection to the target of form1 (this is the "action" attribute of form1) 
$curl_connection = curl_init('http://hostname.com/form1.asp'); 

// Set up so options -- connection timout, store to string, follow redirects 
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1); 

// Set the post fields, this is just like a query string and contains the contents of form1 fields 
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, "field1=value1&field2=value2"); 

// Run the query and capture the results 
$data = curl_exec($curl_connection); 
curl_close($curl_connection); 

// At this point $data should contain the ticket number 
var_dump($data); 
+0

残念ながら、クライアント側の操作である必要があります。 "form1"サーバーは、NTLM認証をネゴシエートしない接続を受け付けません。だから、私はそれをインターネットブラウザのユーザーがフォームを送信しているように見せなければなりません。上記の解決策はすばらしい解決策ですが、私はそれを試しました:(。サーバーは "無許可"で応答します。そして、クリアテキストでパスワードを送信しようとしましたが、それはどちらも好きではありません。 –