我似乎遇到了尝试将表单变量提交到多个网址的问题。 我下面的代码从表单中获取变量并将它们存储在php中,然后我尝试将这些变量发送到某些URL(变量确实通过了,我已经测试过了)。我听说cUrl是这样做的方法,但我不知道它的工作原因是如何检查响应代码的。
<?php
$name = $_POST['firstname'];
$email = $_POST['email'];
$src = $_POST['srcUrl'];
$ip= $_SERVER['SERVER_ADDR'];
$suDate = date('Y-m-d H:i:s');
$data = array(
"fn" => $name,
"src" => $src,
"em" => $email,
"ip" => $ip,
"signupDate" => $suDate
);
$data2 = array(
"firstname" => $name,
"email" => $email,
);
function post_to_url($url, $data) {
$fields = '';
foreach($data as $key => $value) {
$fields .= $key . '=' . $value . '&';
}
rtrim($fields, '&');
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($post);
curl_close($post);
}
post_to_url("http://exampleURL.com/page.php", $data);
post_to_url("http://exampleURL2.com/cgi-bin/add.cgi", $data2);
print_r($result);
?>
非常感谢任何帮助。感谢
答案 0 :(得分:2)
在上面提供的代码示例中,$ result包含您要查找的响应。要查看变量的完整详细信息,请使用:
print_r($result);
当您不确定变量的数据类型或可能包含的数据时, print_r
非常有用。 print_r
为您提供有关变量的所有可用信息。
修改:同时将curl_setopt($post, CURLOPT_POST, count($data));
更改为curl_setopt($post, CURLOPT_POST, 1);
CURLOPT_POST是一个真/假选项(http://php.net/manual/en/function.curl-setopt.php)。
答案 1 :(得分:1)
在您的函数中,$result = curl_exec($post);
$result
数据就是响应。因此,您需要添加return $return;
并使用$response = post_to_url(...);
调用该函数并回显响应。