首页 文章

注意:未定义的索引体

提问于
浏览
0

我有这样的事:

<?php
    $body = $_GET["body"];
    if ($body=="")
    {
        include("includes/desktop.php");
    }
    else
    {
        if (is_file("includes/$body.php"))
        {
            include("includes/$body.php");
        }   
        else
        {
            include("includes/desktop.php");
        }        
    }                              
?>

如何使这个通知消失?仅当$ _GET [“body”]为空时才会发生 .

注意:未定义的索引:第106行的C:\ wamp \ www \ admin \ index.php中的正文

4 回答

  • 1

    更改

    $body = $_GET["body"];
    

    $body = isset($_GET["body"]) ? $_GET["body"] : '';
    

    您可以在php中找到几乎所有符号和运算符here

  • 0

    它正在发生,因为超全局 $_GET 数组中没有索引 body . 换句话说,你没有通过 $_GET['body'] .

    而是使用:

    if (isset($_GET['body']) && $_GET['body']) {
    

    它检查索引和有意义(非假)值 .

  • 0

    尝试

    if (!isset($_GET['body']) || empty($_GET['body'])) {
       include("includes/desktop.php");
    } else {
        ...
    }
    

    http://www.php.net/isset

    旁注:您永远不应该信任用户输入 . 直接将正文GET参数传递给include()调用允许恶意用户包含您从未打算加载的文件 .

  • 0

    它警告你身体不是通过$ _GET发送的 . 你需要做这样的事情

    <?php
        if (isset($_GET["body"])) {
          $body = $_GET["body"];
          if ($body=="")
          {
              include("includes/desktop.php");
          }
          else
          {
              if (is_file("includes/$body.php"))
              {
                  include("includes/$body.php");
              }   
              else
              {
                  include("includes/desktop.php");
              }        
          }                              
      }
    ?>
    

相关问题