【问题标题】:How to check if ANY php parameter exists in url [duplicate]如何检查url中是否存在任何php参数[重复]
【发布时间】:2017-09-20 13:34:12
【问题描述】:

我正在创建一个论坛,该论坛使用 GET 方法根据 URL 中的类别访问线程。如果 url 中不存在任何参数,我想重定向到错误页面,但我希望这是一段通用代码,可以在我的整个站点中使用。

例如:

网址通常包含类别 ID:

localhost/myforum/threads.php?categoryid=1

我想要这样当 url 是:

localhost/myforum/threads.php

它是重定向到一个错误页面,并且这段代码在整个网站上都可以使用

【问题讨论】:

标签: php html


【解决方案1】:

最可靠的方法是检查网址是否包含问号:

if (false !== strpos($_SERVER['REQUEST_URI'], '?')) {
    // There is a query string (including cases when it's empty)
}

【讨论】:

    【解决方案2】:

    只是:

    if (empty(array_diff($_GET, ['']))) {
        header("Location: /path/to/error.php");
    }
    

    编辑:更新以删除空值

    【讨论】:

    • 请在空调用后添加右括号以关闭 if 条件。
    • @TurboPT 错过了,谢谢。
    • @PedroLobito 它返回 true。
    • @PedroLobito 也是如此,正如它所假设的那样。你想表达什么观点?
    • 为了简单起见,我会给 1+,做得好,我已经更正了我的答案。
    【解决方案3】:

    试试:

    $gets = parse_url($url));
    if($gets['query'] == "")
    {
        echo "No GET variables";
    }
    

    【讨论】:

      【解决方案4】:

      可以这样使用is_set来检查参数是否存在,

      isset($_GET)
      

      【讨论】:

      • isset 不是 is_set,这只会检查名为 categoryid 的参数,而不是其他参数。
      猜你喜欢
      • 2013-03-06
      • 1970-01-01
      • 2019-12-10
      • 2012-10-24
      • 1970-01-01
      • 2016-03-11
      • 2011-07-18
      • 1970-01-01
      • 2011-01-17
      相关资源
      最近更新 更多