【问题标题】:Configure server PHP to handle POST requests配置服务器 PHP 以处理 POST 请求
【发布时间】:2016-01-18 03:33:11
【问题描述】:

我正在尝试编写一个 PHP 脚本来处理 POST 请求。最终,它需要接收 JSON 并将其写入文件。现在,当我调用公共 URL 时,我只是试图让任何东西都能正常工作。

<?php

item1 = $_GET['username'];

    echo $item1;

fopen('TESTER_FILE.txt', 'w');

?>

我正在测试它

curl -H "Content-Type: application/json" -X POST -d '{"username":"xyz","password":"xyz"}' http://*********.com/file.php

它似乎通过并且没有抛出任何错误,但没有任何反应。我没有得到回声或文件创建。

【问题讨论】:

  • 试试$_POST['username']
  • 进行了更改,但仍然一无所获
  • 我不知道您正在调用 curl -H "Content-Type: ... 的工具,但它似乎使用 POST 数据调用 url,而您的 PHP 脚本查找 GET.

标签: php json post server


【解决方案1】:
item1 = $_GET['username'];

1:你需要一个 $ 前缀来表示它是一个变量

2:如果您希望发布数据,请使用$_POST 而不是$_GET

例如:

$item1 = $_POST['username'];

fopen('TESTER_FILE.txt', 'w');

这只会打开文件进行写入,实际上并没有写入任何内容。为简单起见,请尝试改用file_put_contents()

file_put_contents('TESTER_FILE.txt', $item1);

如果你想追加而不是覆盖:

file_put_contents('TESTER_FILE.txt', $item1, FILE_APPEND);

它似乎通过并且没有抛出任何错误,但没有任何反应。我没有得到回声或文件创建。

由于您尝试做这两件事,很可能是您在某个地方遇到了错误并且它被隐藏了(可能是第 3 行缺少的 $ !!) .

启用错误报告!

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// do the rest of your stuff

【讨论】:

  • 但除此之外你做得很好;)
猜你喜欢
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
相关资源
最近更新 更多