$_POST 在网络服务中不起作用?

$_POST is not working in web services?

我从 2 天起就卡住了,我正在使用 Web 服务,这个 Web 服务是从 iOS 发出请求,它们是用 $_POST 方法发送请求,但它不工作。

我尝试 print_r($_POST) 但它的 return 空白 Array() 也尝试 $_REQUEST 但它的 return 空白 Array() GET 方法正常工作。

我也制作 <form> 并尝试使用 POST 方法提交并打印 $_POST$_REQUEST 然后两者都可以正常工作。

当打印 $_SERVER['REQUEST_METHOD'] 然后它 return GET.

请大家知道这是怎么回事吗?

首先,我们需要查看您的代码才能全面帮助您。下面是一个如何结合 PHP 和 $_POST.

使用表单的小例子
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    echo "<pre>";
    var_dump($_POST);
    echo "</pre>";
    exit;
}
?>

<!-- HTML -->
<form method="POST" action="<?= $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="element" />
    <button type="submit">Submit form</button>
</form>

在这里,我可以找到我的答案和问题。因为 mod_rewrite 是更改请求方法。如果您有影响操作 URL 的重写规则,您将无法读取 POST 变量。

您必须将此规则添加到 .htaccess 开头,以避免重写 url:

RewriteRule ^login.php - [PT]