2

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


?>

任何帮助是极大的赞赏。谢谢

4

2 回答 2

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)。

于 2012-07-30T21:40:49.190 回答
1

在您拥有数据的函数内部$result = curl_exec($post);$result响应。因此,您需要添加return $return;并调用该函数$response = post_to_url(...);并回显响应。

于 2012-07-30T21:41:19.433 回答