如何在外部网站上提交表单并生成HTML?

时间:2012-06-14 09:32:02

标签: php javascript parsing form-submit

我想用PHP创建一个脚本(可能需要JS)将POST数据发送到另一个网页并返回结果。

例如,域A将有一个带有文本框和提交按钮的表单,域B将有一个脚本,它将填充文本框并按下提交按钮并返回生成的HTML页面。

3 个答案:

答案 0 :(得分:6)

以下代码行可以写在另一个php脚本上,

//set POST variables
$url = 'the website from which you need data through post';
$fields = array(
            //post parameters to be sent to the other website
            'text'=>urlencode($_POST['text']), //the post request you send to this  script from your domain.
        );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

现在$ result将包含从其他网站收到的文本。

答案 1 :(得分:1)

使用JS:出于安全原因没有。请继续阅读Same origin policy

使用PHP,您可以执行您想要的操作,包括POST其他服务器。例如,使用CURL

答案 2 :(得分:-1)

--- 2012年原创答案---

使用jquery;只需使用$ .ajax()调用加载页面。如果需要,可以使用“jsonp”来解决来自不同域的调用页面之间的限制。

使用javascript的好处是你不需要任何服务器端语言。

--- 2018编辑---

我现在意识到你不能用jsonp进行POST(因为它本质上是只读的)所以这只有在网站接受表格作为GET(即URL中的参数)时才有效。否则,最好使用Curl或其他答案中建议的类似。