cURL不工作(发送/接收),php5-fpm和nginx

时间:2014-06-02 02:12:07

标签: php curl nginx mysqli

我最近负责创建一个可以完成以下几项操作的脚本: - 从$ _POST解析数据 - 将该数据插入本地数据库 - 将该数据作为POST发送给第三方

前两个目标很简单。获取数据,清理并验证它,将其插入我的数据库。完成,完成和完成。

我遇到了第三个目标的问题。在审查我的选项后,我确定cURL符合该法案,但不幸的是,我无法让它工作。我试过搜索SO和谷歌,但我的搜索结果没有发现任何有用的东西。

这是我的" insert_data.php"文件。没有错误,没有失败,没有。如果我为$data手动定义数组,它就像一个魅力。

<?php
$data = $_POST;

$mysqli = new mysqli('localhost', 'root', 'password', 'database_name');

$key_list = implode(',', array_keys($data));
$val_list = implode(',', array_fill(0, count($data), '?'));
$types    = str_repeat('s', count($data));
$query    = "INSERT INTO leads ($key_list) VALUES ($val_list)";

if ( !$stmt = $mysqli->prepare($query) ) 
{
  die('connection error');
} else
{
  $stmt->bind_param($types, $data['first_name'], $data['last_name'], $data['email'])

  if ( !$stmt->execute() )
  {
    die('execution error');
  }
  else
  {
    die('success');
  }
}
?>

这是我的&#34; send_curl.php&#34;文件。我认为我的cURL使用有问题,但对于我的生活,我无法弄明白。

<?php
$data = array(
  'first_name' => 'John',
  'last_name'  => 'Doe',
  'email'      => 'user@domain.com',
);

$url = 'insert_data.php';

$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);

if (isset($result))
{
  echo "<pre>";
  print_r($result);
  echo "</pre>";
}
else
{
  die('$result not set');
}
?>

我做错了什么?您的帮助非常赞赏。

1 个答案:

答案 0 :(得分:0)

这是在您的代码和&amp;不是网址:

$url = 'insert_data.php';

网址应为完整网址,如下所示:

$url = 'http://my.great.site.here/insert_data.php';

有关如何处理curl_init网址的详细信息,请访问the official PHP manual entry