在CURL后,我有一个双源

时间:2011-07-26 14:44:36

标签: php curl

对于我的一个项目,我正在创建一个可供其他人使用的注册表。为了简化这一点,我使用CURL发送数据。基本上设置是这样的:

访问者访问registration.php,填写表单并提交。在registration.php中,用户被发送到另一个web服务器上的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)

0 个答案:

没有答案