0

外部のWebサイトでフォームをリモートで送信/処理し、結果を自分のサイトに戻す必要があります。ユーザーはこの相互作用に気付くことはできません。

HTML PHP/Simple_Html_Domを使用してデータを取得できます

<?php
require "DOM/simple_html_dom.php";

$html = file_get_html('website.com/pricing');
foreach ($html->find('div[id=Price]') as $result)
{
    echo $result->innertext;
}

?>

戻ってきました、価格はN/Aです。フィールドの値を渡すことができる必要があります。私はそれらを次のような隠された値として渡すことを望んでいました<input type="hidden" name="QTY" value="100" />

適切な構文は何ですか、および/またはこのタスクを実行するにはどうすればよいですか?

私は試した:

$html->load('<html><body
<form action="website.com/..." method="post" name="Pricing" > 
#all hidden fields & values
</form></body></html>')

何か案は?助けてくれてありがとう。理想的には、ページにフォームを再作成し、AJAXを使用してクエリの結果をリアルタイムでフェッチしようとしています。

--MORE DATA--このページはセッションを使用しています:(これはPOSTにどのように影響しますか?)

{
"headers": {
"Date": "Mon, 24 Sep 2012 19:23:58 GMT",
"Server": "Apache",
"Set-Cookie": "JSESSIONID=01987F6C188624B08885FE26644300DA.worker2; Path=/g",
"Cache-Control": "no-cache",
"Pragma": "no-cache",
"P3P": "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"",
"Vary": "Accept-Encoding",
"Connection": "close",
"Transfer-Encoding": "chunked",
"Content-Type": "text/html;charset=UTF-8"
},
4

1 に答える 1

0

別のドメインからのAJAX経由のデータにアクセスしたり修正したりすることはできません。このようなリクエストには同一生成元ポリシーが適用されるため、さまざまな種類のハッキングが防止されます(銀行口座の詳細について誰かのブラウザをスニッフィングするなど)。

問題のページを制御できない場合は、(調査で示唆されているように)PHPプロキシのオプションが残されています。ただし、これにはJavaScript自体を処理できないという欠点があり、リモートフォームのすべての動的フィールドがPHPスクリプトから見えなくなります。

クッキーに関しては、cURLは自動的にクッキーを処理する必要があります。cURL設定については、 curl_setopt()のマニュアルを確認してください。

于 2012-09-24T19:29:25.020 に答える