【问题标题】:Empty $_POST while sending data in POST-request with curl (command line) to php-script使用 curl(命令行)将 POST 请求中的数据发送到 php-script 时清空 $_POST
【发布时间】:2020-05-18 04:31:16
【问题描述】:

我目前正在尝试向 VPS 上的 PHP 脚本发送 POST 请求。请求是用 curl 发出的,看起来像这样:

curl -L -X POST --cacert /home/user/server.pem --data "analysis_results=1" http://server-ip-here/api/v2/update_analysis_results.php

PHP-Script 仅包含以下内容:

<?php

echo "Helloooo World!";

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    print_r($_POST);
    if ( !empty($_POST) ) {
            echo "post";
    }
}
?>

执行curl命令后返回如下:

Helloooo World!Array
(
)

我不明白为什么 $_POST-Array 是空的。有什么想法吗?

编辑:将“echo $_POST”替换为“print_r($_POST)”

【问题讨论】:

  • 您不能在 PHP 中回显数组。 $_POST 是一个数组。您可以使用print_rvar_dump
  • 你能试试-F "analysis_results=1"而不是--data "analysis_results=1"吗?
  • @N'Bayramberdiyev 在这种情况下 curl 说:curl: (6) Could not resolve host: analysis_results=1

标签: php curl post


【解决方案1】:

你应该使用 print_r($_POST) 而不是 echo $_POST;

$_POST 是一个数组。

回显 $_POST['analysis_results'];

【讨论】:

  • 我已经尝试访问该字段,但数组确实为空
猜你喜欢
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
相关资源
最近更新 更多