如何拦截FORM结果

时间:2012-09-24 18:44:12

标签: php javascript ajax codeigniter

我需要在外部网站上远程提交/处理表单,并将结果返回到我的网站上。用户无法意识到这种互动。

我可以使用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;
}

?>

它正在返回,PRICE为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实时获取查询结果。

- 更多数据 - 此页面正在使用会话:(这对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"
},

1 个答案:

答案 0 :(得分:0)

您无法访问或修改来自其他域的来自AJAX的数据。对此类请求有same domain policy有效,因此可以防止各种类型的黑客攻击(例如嗅探某人的浏览器以获取其银行帐户详细信息)。

如果您无法控制相关网页,则(正如您的研究建议)您可以选择PHP Proxy。然而,这具有无法处理JavaScript本身的缺点,使得远程表单中的所有动态字段对于PHP脚本都是不可见的。

关于cookie,cURL应自动为您处理cookie。有关cURL设置的信息,请查看curl_setopt() manual