Итак, я пытаюсь сделать так, чтобы у вас была самопубликуемая форма PHP, POST на внешнюю страницу (используя CURL), которая, в свою очередь, перенаправляет на другую страницу. В настоящее время происходит то, что как только я нажимаю «Отправить» в форме (в contact.php), он отправляет POST самому себе (так как это форма для самостоятельной публикации). Затем скрипт подготавливает POST с использованием CURL и выполняет публикацию. Внешняя страница выполняет свою обработку, а затем предполагается, что внешняя страница перенаправляет обратно на другую страницу в ссылающемся домене. Однако вместо этого происходит следующее: страница contact.php загружает HTML-код со страницы, на которую перенаправлена внешняя страница, а затем HTML-код contact.php загружается на ту же страницу.
Эффект - это то, что выглядит как две отдельные страницы, представленные как одна страница. Естественно, я просто хочу выполнить 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);
}
?>