Forms 表单提交到api,然后重定向到指定页面

Forms 表单提交到api,然后重定向到指定页面,forms,api,redirect,post,curl,Forms,Api,Redirect,Post,Curl,我已搜索,无法将我的表单发布,然后重定向到我自己的url。我可以把它送到其中一个,但不能同时送到两个。如果我将api放在动作的形式中,它会写入db。 我试图允许用户提交表单,数据通过API传递到另一台服务器上的DB,用户被重定向到我选择的页面。 下面的问答是我最近的一次 在表单submit上,用户被发送到“sendthedata.php”,其中包含以下代码 现在,当我提交表单时,它会重定向到指定的页面,但不会发布任何数据。当我尝试使用javascript(来自示例链接)时,表单甚至没有提交,页面

我已搜索,无法将我的表单发布,然后重定向到我自己的url。我可以把它送到其中一个,但不能同时送到两个。如果我将api放在动作的形式中,它会写入db。 我试图允许用户提交表单,数据通过API传递到另一台服务器上的DB,用户被重定向到我选择的页面。 下面的问答是我最近的一次 在表单submit上,用户被发送到“sendthedata.php”,其中包含以下代码

现在,当我提交表单时,它会重定向到指定的页面,但不会发布任何数据。当我尝试使用javascript(来自示例链接)时,表单甚至没有提交,页面刷新,数据位于提交表单的url中。你知道我做错了什么吗?我以前从未用过卷发

**更新了代码,但现在得到了一个输出我不理解的页面

    //create an array of data to be posted
$post_data['token'] = 'token';
$post_data['email'] = 'email';
$post_data['first_name'] = 'first_name';
$post_data['last_name'] = 'last_name';
$post_data['edu'] = 'edu';
$post_data['eduint'] = 'edu_int';



//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
    $post_items[] = $key . '=' . $value;
}

//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);

//create cURL connection
$curl_connection = 
  curl_init('http://DATABASE.com/listener.php');

//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, 
  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

//set data to be posted
$post_string = http_build_query($post_data);
curl_setopt($curl_connection, CURLOPT_POST, true);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

//perform our request
 $result = curl_exec($curl_connection);


//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' . 
               curl_error($curl_connection);


//close the connection


 curl_close($curl_connection);

header("location: mypage.php");
数组([url]=>[content\u type]=> text/html;字符集=UTF-8[http\U代码]=>200[header\U size]=>387 [请求大小]=>292[文件时间]=>-1[ssl验证结果]=>0 [重定向\u计数]=>0[总\u时间]=>0.156171[名称查找\u时间]=> 7.6E-5【连接时间】=>0.060235【预传输时间】=>0.060291【大小上传】=>88【大小下载】=>27【速度下载】=>172 [上传速度]=>563[下载内容长度]=>27 [上传内容长度]=>88[开始传输时间]=>0.15614 [重定向\u时间]=>0[certinfo]=>Array()[primary\u ip]=> XXXXXXXXXX[主\u端口]=>80[本地\u ip]=>XXXXXXXXXX[本地\u端口]=>35623[重定向\u url]=>)0-警告:无法修改 标头信息-标头已由发送(输出开始于 /home/xxxxx/public_html/xxxxx/tst/poster.php:42) /home/xxxxx/public_html/xxx/tst/poster.php,第52行


从您的代码中,我可以看到您已经用curl注释掉了数据发布。启用该选项

另外,请使用
http\u build\u query()
来准备post数据,而不是手动准备,以避免与特殊字符有关的任何问题。因此,总体情况如下所示:

$post_string = http_build_query($post_data);
curl_setopt($curl_connection, CURLOPT_POST, true);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

从您的代码中,我可以看到您已经用curl注释掉了数据发布。启用该选项

另外,请使用
http\u build\u query()
来准备post数据,而不是手动准备,以避免与特殊字符有关的任何问题。因此,总体情况如下所示:

$post_string = http_build_query($post_data);
curl_setopt($curl_connection, CURLOPT_POST, true);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

我取消了对代码的注释,它只显示在下一页上,不再允许重定向。它仍然没有通过api将数据发布到db。它没有取消注释,请使用上面的代码,如果代码不起作用,请使用代码更新您的问题,以便其他人可以帮助您。从您的错误消息中,还有一点。。在调用
标题(“…”)
之前,您正在执行
print\r
。这是有问题的。在HTTP中,在任何输出之前都应该先打印头。您可以使用
ob\u start()
函数四处查看。有关类似问题的详细信息,请访问:great link。这确实修复了头错误,当我将头重定向放在“print_r”curl代码之前时,它会重定向。但是没有任何东西被发布到数据库中。查看curl代码试图找出它,我对代码进行了注释,它所做的只是显示在下一页上,不再允许重定向。它仍然没有通过api将数据发布到db。它没有取消注释,请使用上面的代码,如果代码不起作用,请使用代码更新您的问题,以便其他人可以帮助您。从您的错误消息中,还有一点。。在调用
标题(“…”)
之前,您正在执行
print\r
。这是有问题的。在HTTP中,在任何输出之前都应该先打印头。您可以使用
ob\u start()
函数四处查看。有关类似问题的详细信息,请访问:great link。这确实修复了头错误,当我将头重定向放在“print_r”curl代码之前时,它会重定向。但是没有任何东西被发布到数据库中。查看curl代码,尝试找出它