未定义偏移量 1 与 $qString

Undefined offset 1 with $qString

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

Notice: Undefined offset: 1 in /var/www/includes/client.controller.php on line 34 Notice: Undefined offset: 1 in /var/www/includes/client.controller.php on line 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 将具有查询字符串这一事实。所以你需要在访问它之前检查是否$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 来做同样的事情。