如何将表单变量发送到php中的多个URL(cURL?)

时间:2012-07-30 21:35:51

标签: php curl

我似乎遇到了尝试将表单变量提交到多个网址的问题。 我下面的代码从表单中获取变量并将它们存储在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);


?>

非常感谢任何帮助。感谢

2 个答案:

答案 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(...);调用该函数并回显响应。