【问题标题】:Undefined offset 1 with $qString未定义的偏移量 1 与 $qString
【发布时间】:2021-08-16 21:32:16
【问题描述】:

尝试清理网站,但我们一直显示此错误

注意:未定义的偏移量:/var/www/includes/client.controller.php 中的 1 在第 34 行注意:未定义的偏移量:1 英寸 /var/www/includes/client.controller.php 在第 39 行。

我是新手,希望有人能发现我在下面的代码中遗漏的内容。

        $qString = explode("?", $_SERVER['REQUEST_URI']);

        $qString = $qString[1];
        foreach (explode('&', $qString) as $q)
        {
            $parts = explode('=', $q);
            $key = $parts[0];
            $val = urlencode($parts[1]);
            if (!isset($_GET[$key]))
                $_GET[$key] = $val;
        }

【问题讨论】:

  • URL 可能并不总是一个 GET..$qString = !empty($qString[1]) ? $qString[1] : FALSE;.. 不确定explodeFALSE 上的表现如何.. 可能想要if 那个循环
  • print_r($qString);看看你得到了什么,还有 exit();

标签: php qstring


【解决方案1】:

您需要考虑一个事实,即不是 URL 将具有查询字符串。所以你需要在访问之前检查是否$qString[1],以避免警告。

    $qString = explode("?", $_SERVER['REQUEST_URI']);
    if(isset($qString[1])) {
        $qString = $qString[1];
        foreach (explode('&', $qString) as $q)
        {
            $parts = explode('=', $q);
            $key = $parts[0];
            $val = urlencode($parts[1]);
            if (!isset($_GET[$key]))
                $_GET[$key] = $val;
        }
    } 

另外,我不确定这里的逻辑,似乎这段代码是从$_SERVER['REQUEST_URI'] 重新创建$_GET 系统变量?如果是关于对值进行 urlencoding,你可以循环 $_GET 来做同样的事情。

【讨论】:

  • 谢谢大家,这解决了这个谜。非常感谢您的帮助。
  • 很高兴听到这个消息!如果这解决了您的问题,请将答案标记为已接受,以便您将来帮助人们快速确定正确的解决方案。
猜你喜欢
  • 2022-01-02
  • 2011-07-22
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多