因此,我試圖完成的是有一個自我發佈的PHP表單,POST到外部頁面(使用CURL),然後重定向到另一個頁面。目前,發生的事情是,一旦我點擊表單上的「提交」(在contact.php中),它就會自動發佈(因爲它是一種自我發佈形式)。然後腳本使用CURL準備POST並執行該帖子。外部頁面進行處理,然後,外部頁面應該重定向到另一個頁面,在引用域中。但是,發生什麼情況是,contact.php頁面似乎從外部頁面重定向到的頁面加載HTML,然後,在此頁面上加載contact.php的HTML。PHP表單POST到外部URL,重定向到另一個URL
效果,看起來像兩個單獨的頁面呈現爲一個頁面。當然,我只想執行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);
}
?>