我正在建立一个网站,当我访问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>
答案 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。