PHP Curl(无重定向) - 表单提交 - 无法识别请求并返回两个变量

时间:2014-07-25 07:04:03

标签: php curl request

我正在尝试几天,但我无法得到我真正需要的东西,我在互联网上阅读了这么多帖子和很多实验,但仍然无法得到我的结果。

我需要什么:

我有服务器1和服务器2.我需要我将数据从服务器2发布到服务器1以填写表单并提交它而不将用户重定向到服务器1,并且在提交表单后我需要将执行来自服务器1的PHP,并将提交表单的结果发送回服务器2.

下面的代码可能会更清楚:

顺便说一下,表格是在ajax中。

来自服务器2的PHP:

$url_base

 = 'the_path_of_the url_of_the_form_frontend_file_server_1.php';
        $url_param =
            'name=' . $_USER['name'] .
            '&email=' . $_USER['email'] .
            '&phone=' . $_USER['phone'] .
            '&country=' . $_USER['country'].
            '&password=' . $_USER['password'] .
            '&verify_code=' . '-' .
            '&group=' . 1 .
            '&leverage=' . 100 .
            '&deposit=' . 10000 .
            '&state=' . '-' .
            '&zipcode=' . '-' .
            '&city=' . '-' .
            '&phone_password=' . '-' .
            '&send_reports=' . '-' .
            '&register_demo=' . 'yes_register';

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url_base);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $url_param);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json',
                'Content-Length: ' . strlen($url_param))
        );
        $result = curl_exec($ch);
        curl_close($ch);

= 'the_path_of_the url_of_the_form_frontend_file_server_1.php'; $url_param = 'name=' . $_USER['name'] . '&email=' . $_USER['email'] . '&phone=' . $_USER['phone'] . '&country=' . $_USER['country']. '&password=' . $_USER['password'] . '&verify_code=' . '-' . '&group=' . 1 . '&leverage=' . 100 . '&deposit=' . 10000 . '&state=' . '-' . '&zipcode=' . '-' . '&city=' . '-' . '&phone_password=' . '-' . '&send_reports=' . '-' . '&register_demo=' . 'yes_register'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url_base); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $url_param); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($url_param)) ); $result = curl_exec($ch); curl_close($ch);

我的代码是从服务器2向服务器1发送数据并填写表单,$ result显示表单的html,但我需要在表单从服务器2提交到服务器1后,我需要服务器1的表单的php将被执行并发回表单的结果,实际上在提交表单后,结果将是用户的登录名和密码,在提交表单后创建登录名和密码。

我发送了一个额外的参数'& register_demo ='。 'yes_register';为了确定从服务器1完成表单的时间,我的表单有2个文件,一个文件用于前端,另一个用于后端,因为我使用ajax。

如果我没有犯错,似乎在从服务器2向服务器1提交表单后,我得到结果OK但似乎在服务器1上没有执行php,我可以检索回登录名和密码。我尝试获取此参数'& register_demo ='。 'yes_register';什么都不做,似乎只提交表单而不是后端文件。

对于任何帮助,我都会非常感激,这种情况让我发疯。

我出来了这个解决方案,因为表单只能从一个IP提交,因此我在另一台服务器上有相同的表单,我需要以某种方式从服务器2提交表单并获取登录名和密码服务器2将其显示给用户。

提前感谢你。

1 个答案:

答案 0 :(得分:0)

我将在下面介绍解决方案,如果有人需要帮助,我可以帮忙解决问题。

解决方案:

由于我的表单正在使用AJAX,我正在从服务器2向服务器1发送curl以完成表单并在服务器1上执行PHP后得到结果。由于AJAX,我的PHP没有被执行。

所以我创建了一个服务器2将使用它的API。我在不同的文件和我需要执行的所有PHP(平面PHP)中实现了表单。之后,我将CURL发送到该API,我开始执行PHP并返回所需的结果。

如果有人需要更多帮助,请与我联系,我可以提供帮助,或者我可以根据您的要求提供代码示例。

感谢大家提供正确的提示。