После поста CURL у меня есть двойной источник - PullRequest
0 голосов
/ 26 июля 2011

Для одного из моих проектов я создаю форму регистрации, которую могут использовать другие люди. Чтобы сделать это проще, я использую 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...