0

我有一个函数文件,我在其中处理 POST 和 GETS,让用户执行发布或获取。它更像是一个 API 调用。

我应该这样做还是使用 $_REQUEST 同时处理 POST 和 GET?

if ($_SERVER['REQUEST_METHOD'] === "GET") {

    $function = $_GET['f'];
    $user_id  = $_GET['user_id'];
}
elseif ($_SERVER['REQUEST_METHOD'] === "POST") {

    $function = $_POST['f'];
    $user_id  = $_POST['user_id'];
}

$res = new stdClass();

if (isset($function)) {

    switch ($function) {    
         ....
    }
}
4

5 回答 5

4

您当前的方法提供的好处是您可以为每个实例使用最佳方法。有时您不想 GET,因为它只是将数据附加到 URL,将其暴露给任何看起来以及将“调用”暴露给知道如何使用 URL 做坏事的任何人。

如果您担心捕获无法控制请求方法的调用,您可以添加 $_REQUEST 作为最后的手段,但我建议限制您使用它 - 例如:仅从数据库中提取数据而不是任何修改它的东西。

于 2013-07-12T15:01:03.103 回答
3

如果你想同时允许,你可以使用$_REQUEST. 如果您不关心该值是 POST 还是 -er- GETted,这会容易得多。但请注意,$_REQUEST根据PHP.ini 中的设置,它也可能包含 cookie 。

于 2013-07-12T14:59:02.910 回答
1

$_REQUEST 可以$_POSTand $_GET,但也可以是$_COOKIE这取决于request_ordervariables_order设置。因为根据ini设置它也可能不是这些,所以我根本不会使用它。

$_GET我的建议是$_POST单独使用。它们的意思完全不同。您想将 a$_POST用于操作,将 a$_GET用于获取。如果您想要基于您的表单填写,$_GET您可以使用它$_SERVER['REQUEST_METHOD'] == 'POST'来确定实际发生的情况并在两者之间切换。

于 2013-07-12T15:06:21.667 回答
0

$_REQUEST是处理这两种请求的最方便的方法($_GET & $_POST)。所以使用 $_REQUEST :

PHP中的请求方法

于 2013-07-12T15:03:00.830 回答
0

是的,你可以,$_REQUEST同时处理$_POST$_GET

于 2013-07-12T15:00:12.400 回答