所以,我想要完成的是有一个自我发布的PHP表单,POST到外部页面(使用CURL),后者又重定向到另一个页面。目前,正在发生的事情是,一旦我点击表单上的“提交”(在contact.php中),它将POST到自己(因为它是一个自我发布的表单)。然后脚本使用CURL准备POST并执行发布。外部页面进行处理,然后外部页面应该在引用域中重定向回另一个页面。但是,相反的是,似乎contact.php页面从外部页面重定向到的页面加载HTML,然后,在此之后加载contact.php的HTML。
效果,就像两个单独的页面呈现为一个页面。当然,我只是想执行POST并让浏览器呈现它应该重定向到外部页面指定的页面。
这是我到目前为止的代码:
<?php
if(isset($_POST['submit']))
{
doCURLPost();
}
function doCURLPost()
{
$emailid = "2, 4";
$hotel = $_POST['hotel'];
//you will need to setup an array of fields to post with
//then create the post string
$data = array ( "recipient" => $emailid,
"subject" => "Hotel Contact Form",
"redirect" => "http://www.localhost.com/thanx.htm",
"Will be staying in hotel: " => $_POST['hotel'],
"Name" => $_POST['Name'],
"Phone" => $_POST['Phone'],
"Comments" => $_POST['Comments']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.externallink.com/external.aspx");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer: http://www.localhost.com/contact.php"));
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
}
?>
答案 0 :(得分:0)
好像你差不多就在那里。
在显示从cURL返回的内容后,您可能只想死()或退出(),这样您的POST前版本的contact.php就不会被发送到浏览器。
所以你可以暂停执行,或者用条件构造你的代码,这样就可以了 “显示一个表单”的事情发生了,或者“做一些卷曲的帖子并显示结果”的事情发生了,但不是两者都有。