【问题标题】:PHP request data from HTTPS来自 HTTPS 的 PHP 请求数据
【发布时间】:2016-05-10 02:26:28
【问题描述】:

首先,我是编程新手。我想从另一台服务器请求特定数据(来自 MSSQL 的数据)并传输(插入)到我的 MySQL 数据库中,实现此目的的正确方法是什么?

目的:

一位来自 MSSQL 端的成员想要转移一定数量的 点到 MySQL,会员可以输入他们有多少点,一次 要点是成功转移到 MySQL,通知脚本将 最后发送到 MSSQL 端进行更新。

MSSQL 端应该生成什么,以便 MySQL 获取这些数据进行进一步处理?

比如我有HTTPS链接:https://www.example.com/request-transfer.aspx?id=12345&sym=hello&name=linda

对于PHP处理端,如何使用cURL来获取这些数据?

我有下面的测试脚本,仅仅使用 $_GET 还不够吗?

// GET
$id   = $_GET['id'];
$sym  = $_GET['sym'];
$name = $_GET['name'];

$data = array("id" => $id, "sym" => $sym, "name" => $name);
$data_string = json_encode($data);

$ch = curl_init('http://localhost/test/process.php');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string))
);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

$input = json_decode($data_string);

echo $input->id.', '.$input->sym.', '.$input->name; 
echo $result;

请指教。

【问题讨论】:

  • 你不能只打开MSSQL数据库到外部连接吗?您似乎可以控制该网站
  • @Dagon,我无法控制外部使用的 MSSQL,所以我需要 http 请求
  • 您可能需要cURL。请注意,许多提供商禁用/阻止它。你在哪里运行你的脚本?
  • 我看到您已经使用 cURL 进行了编码。怎么了?输出是什么?请发布错误消息/日志条目。
  • @Quasimodo 的克隆,我在问 cURL 是如何达到我的目的的?因为我没有看到 cURL 是必要的,我可以使用$_GET 来获得我想要的?

标签: php json httprequest


【解决方案1】:

到目前为止,您的代码看起来还不错,只是不要设置标题。它们将在 GET/POST 请求中自动设置。只有在 PUT 请求上,您才需要指定它们。

您可以直接对 $_GET 数组进行 JSON 字符串化。这将允许将任何参数发送到远程站点。如果您想确保只发送有效参数,那么您已经正确完成了。您只需测试 GET 参数是否实际存在。

如果你不想重复长表达式,你可以写一个短函数:

function _GET()
{ $n = func_num_args();
  for($i = 0 ; $i<$n ;)
  { $key = func_get_arg($i++);
    $array[$key] = isset($_GET[$key]) ? $_GET[$key] : '';
  }
  return $array;
}

$data_string = json_encode(_GET('id', 'sym', 'name'));

【讨论】:

    猜你喜欢
    • 2013-02-21
    • 1970-01-01
    • 2019-09-22
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多