【问题标题】:Is there a PHP variable which includes the merge of $_GET and $_POST?是否有包含 $_GET 和 $_POST 合并的 PHP 变量?
【发布时间】:2011-07-06 03:27:34
【问题描述】:

$_REQUEST 包含我不想在我的表单帖子中出现的 cookie。

【问题讨论】:

  • 在您的 php.ini 中更改 variables_order 以满足您的需要。然后,您可以安全地让您的代码依赖于$_REQUEST 的正确输入。
  • @Linus Kleen 尽管与$_REQUEST 有关,但它根本无法回答问题。
  • @coreyward 这有点暗示$_REQUEST 包含所有 GPC 的假设。另外,请回答以下问题:“我需要 9 / 3 的结果。除法容易被零除错误,我不希望在我的代码中出现这种情况。”
  • @Linus 不错的编辑。在你的答案中要清楚——很可能有人问一个问题不会得到一个轻微的暗示。
  • @Linus Kleen Pffft,这很简单:只需减去一堆。

标签: php


【解决方案1】:
$new_array = array_merge($_GET, $_POST);

【讨论】:

    【解决方案2】:

    你可以简单地使用:

    $_REQUEST = array_merge($_GET, $_POST);
    

    这样做的好处是明确列出您想要的订单,这样您就不会因为 REQUEST 订单已关闭而覆盖您没有预料到的内容。

    【讨论】:

      【解决方案3】:

      您可以通过查看 php.ini 设置 variables_order 来更改 $_REQUEST 的内容。开始here

      【讨论】:

        【解决方案4】:

        The php.ini setting 负责 $_REQUEST 中的内容是 variables_order

        Default: variables_order "EGPCS"
        

        将 php.ini 中的内容更改为:

        GP
        

        只包含 $_GET 和 $_POST

        也许你不想这样做

        通常在 Web 应用程序中,您使用 $_GET 值来选择要显示的内容,并使用 $_POST 值来传输网页中要更改的内容(或通常更改状态的用户操作)。通常不建议混合使用:)

        这个答案也很好地解释了它:When and why should $_REQUEST be used instead of $_GET / $_POST / $_COOKIE?

        或者也许读这个:What's wrong with using $_REQUEST[]?

        也感谢马里奥的评论:)

        【讨论】:

        • +1 ...我之前没有投票,因为我不喜欢这种“聪明”的解决方案,但加上(和强调),我相信这是值得的。
        • variables_order 仅用于更改订单。如果未设置为GP,它将导致一个空的 $_SERVER 和 $_COOKIE 数组。因此 PHP 5.3 引入了 request_order,它只影响 $_REQUEST。
        【解决方案5】:

        出于这个原因,您不应该使用$_REQUEST。访问$_GET$_POST 和朋友的专用用途,而不是使用$_REQUEST

        【讨论】:

          【解决方案6】:

          我会很明确。

          如果在某些情况下需要 GET/POST 合并,那么就应用它——但我会避免公然破坏。这种合并可以很容易地按项目完成,并隐藏在一个漂亮、整洁和默认应用的包装器后面——甚至可能在当时和那里有一个清理/转换层。

          不需要魔法。编码愉快。

          【讨论】:

          • 感谢您的回复,他们都很有帮助。最好是做一个 array_merge($_GET, $_POST);
          猜你喜欢
          • 2012-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-27
          • 2016-11-26
          • 1970-01-01
          • 2014-12-24
          相关资源
          最近更新 更多