Для одного из моих проектов я создаю форму регистрации, которую могут использовать другие люди. Чтобы сделать это проще, я использую CURL для отправки данных. В основном установка выглядит так:
Посетитель заходит на сайт registration.php, заполняет форму и отправляет ее. В registration.php пользователь отправляется на handler.php, который находится на другом веб-сервере. Этот файл связывается с RegistrationClass и другими классами (MySQL и несколько моделей для регистрации регистрации). RegistrationClass проверяет регистрацию на основе полученных $ _POST-данных. Эти данные возвращаются обратно в handler.php и возвращаются в registration.php.
Единственное, что когда я отправляю форму, происходит проверка / регистрация, но форма отображается дважды на странице registration.php. Первая форма (самая низкая) - это оригинальное представление формы перед отправкой. Вторая - та же самая форма с результатом проверки / регистрации. Я предполагаю, что это CURL_OPT, который я должен установить, но я не могу понять, какой ...
Этот код я использую для отправки пользователя на страницу обработчика:
if(isset($_POST["ProcessRegistration"]))
{
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_URL => "http://bfransen.devdev.nl/Global/Willem.php",
CURLOPT_POSTFIELDS => http_build_query($_POST)
)
);
curl_exec($ch);
curl_close($ch);
}
В RegistrationClass это возвращает значения:
private function PostBack()
{
$ch = curl_init();
$this->_POST["Error"] = $this->ErrorCode;
$this->_POST["ErrorMessage"] = $this->GetError($this->ErrorCode);
$this->_POST["Ack"] = true;
unset($this->_POST["ProcessRegistration"]);
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_URL => $this->_SuccessURL,
CURLOPT_POSTFIELDS => http_build_query($this->_POST)
)
);
if(!curl_exec($ch))
{
trigger_error(curl_error($ch));
}
curl_close($ch);
}
Если вы попытаетесь посетить: http://www.fransenmedia.nl/registratie.php и попытаетесь использовать форму, независимо от того, что вы заполните, в этот момент будет возвращена ошибка. Но двойная форма появится.
P.s. обратите внимание, что я голландец, и описанные файлы имеют разные имена (registration.php -> registratie.php и handler.php -> Willem.php)