php注意:未定义的索引:第3行的C:\ xampp \ htdocs \ includes \ middle.php中的id

时间:2014-03-06 16:20:17

标签: php

我正在建立一个网站,当我访问www.mydomain.org时,我会抛出这个错误。 转到http://mydomain.org/index.php?id=home

时,此代码 工作

我如何解决此问题,因为我不希望别人输入/index.php?id=home

<div id="middle_main">
    <?php   
          $page = $_GET['id']; 
          if ($page == "") { include "pages/home.html"; } 
          else { include "pages/$page.html"; } 

    ?>
</div>

2 个答案:

答案 0 :(得分:0)

检查是否已设置,如果没有,请将其设置为“home”:

$page = isset($_GET['id']) ? $_GET['id'] : 'home';

然后你不需要if语句来检查它是否已设置:

include "pages/$page.html";

答案 1 :(得分:0)

通知在PHP开发中是最新的,它们不是错误,这意味着您无需修复它们。然而,这是一个非常好的做法。

undefined index通知警告您正在尝试读取尚未初始化的数组索引。在您的情况下,您尝试阅读home数组的$_GET索引。当您的网址为something.php?home=something时,$_GET['home']会自动初始化,并且不会显示任何通知。但是,当您访问something.php时,未设置此索引,这解释了通知!

在您的代码中,您需要检查此索引是否已设置,并在未设置时为其指定默认值。

$page = isset($_GET['home']) ? $_GET['home'] : 'home';

在这种情况下,如果未设置home索引,则$page将设置为“home”。如果您想了解更多关于我刚刚使用的三元运算符(?和:)的信息,请参阅http://davidwalsh.name/php-shorthand-if-else-ternary-operators