PHP中带有$ _REQUEST的URL值

时间:2010-12-09 18:28:17

标签: php request

如果我在URL中传递一些参数,使用$ _REQUEST super globa检索它们是不好的做法,而不是$ _GET super

6 个答案:

答案 0 :(得分:3)

使用$_REQUEST时存在几个问题。

  1. 对于您未来的自我和其他维护者来说,数据的来源可能会让您感到困惑。
  2. 它可能会导致冲突,并创建难以发现的错误,因为$_REQUEST涵盖了$_GET$_POST$_COOKIE )。
  3. 也许还有其他我现在也不记得了。

    所以是的,这是不好的做法。

答案 1 :(得分:3)

好吧,既然您希望它们仅作为GET变量使用,为什么要使用$_REQUEST而不是$_GET

$_REQUEST的问题在于,如果存在GET,POST和/或COOKIE的变量,则会覆盖该超全局中的另一个变量。如果您尝试访问$_REQUEST,那么您最终得到的值是半可预测的。

答案 2 :(得分:2)

不,这不是不好的做法。唯一的问题是$_REQUEST将包含GETPOST命令以及COOKIES值传递的值。因此,如果您只想处理在URL中传递的值,您可能希望使用$_GET ...

答案 3 :(得分:2)

可以在php.ini中设置GET POST COOKIE变量的顺序,这样如果你有一个同名的POST或COOKIE var,那么GET var将不是REQUEST中的活动变量。

最好只使用适当的超全局来处理您正在访问的数据类型..在您的情况下,$ _GET

否则你(或其他任何人)不知道使用$ _REQUEST时数据是来自

答案 4 :(得分:1)

$ _GET和$ _POST的一个好处是您确切知道脚本如何接收参数。它还将它们保存在不同的命名空间中,因此$ _GET ['foo']将始终与$ _POST ['foo']不同,$ _REQUEST不会这样做。

最后,这是一个由你自己决定的设计选择,但是有一天你会回头看看并且很高兴您使用$ _GET而不是$ _REQUEST(除非你有特殊原因没有至)。但有一点需要记住:$ _GET,$ _POST和$ _REQUEST都可能包含用户操作的数据,所以不应该被信任。总是消毒!

答案 5 :(得分:1)

这通常不是问题。通常,您希望使用任何方法来访问表单/ API。然后$ _REQUEST是最好的选择。您应该区分功能。如果访问修改数据,则使其依赖于$ _POST。如果访问严格用于查询,则强制它仅使用$ _GET。

使用$ _REQUEST(Cookie固定问题)会产生安全隐患,但它们通常会被夸大。无论如何,它已经过时了当前的PHP配置。因此,有一些盐 - 以前有一些关于这个主题的讨论: