【问题标题】:Why would $_REQUEST return different values in different cases when getting the same parameter?为什么 $_REQUEST 在获取相同的参数时会在不同的情况下返回不同的值?
【发布时间】:2010-11-04 19:01:35
【问题描述】:

我有两个 URL,其中包含我试图在 PHP 中读出的参数“tour_date”。为第一个 URL 运行 $_REQUEST["tour_date"]

.php?tour_id=336&tour_date=11/06/2010

返回值:11/06/2010

而第二个网址:

.php?tour_id=336&tour_date=11/06/2010

什么都不返回。我已经运行了 empty() 方法进行测试,它确实没有找到它。关于为什么会发生这种情况的任何想法?感谢您的帮助!

【问题讨论】:

    标签: php url parameters get request


    【解决方案1】:

    $_REQUEST 是一个超全局变量,它结合了 $_GET、$_POST 和 $_COOKIE(默认按此顺序) 如果您的 POST 或 COOKIE 也将 tour_date 设置为空字符串,则 REQUEST 值将被覆盖

    【讨论】:

    • 感谢您的想法,但我也尝试在参数上仅使用 $_GET,但它仍然没有返回任何内容。
    • 检查更多全球性的东西。将error_reporting(E_ALL) 作为 php 代码的第一行。关注var_dump($_SERVER)
    • error_reporting(E_ALL) 没有报告错误,并且在 var_dump($_SERVER) 和 var_dump($_REQUEST) 上没有出现与字段 tour_date 相关的任何内容。也许这可能是由于参数中的斜线?但我认为这至少会返回斜杠之前的第一个字符,这并不能解释为什么它在另一个实例中起作用。
    • 然后回到基础 - 确保您在正确的服务器上使用正确的文件。确保您正在保存更改(上传到 FTP?)。看看你在 apache 上是否有某个模块强制执行限制(某些安全模块可能)......祝你好运!
    【解决方案2】:

    您可以尝试将var_dump($_REQUEST); 放入您的代码中,看看这是否为您指明了正确的方向。

    另外,请确保您没有仅与单个“=”进行比较。

    if($_REQUEST["tour_date"] = ""){。这将返回 true 并将 tour_date 设置为空。

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 2019-10-03
      • 2020-10-28
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 2014-03-30
      相关资源
      最近更新 更多