簡體   English   中英

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

[英]php Notice: Undefined index: id in C:\xampp\htdocs\includes\middle.php on line 3

我正在制作一個網站,並且在訪問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>

檢查是否已設置,如果未設置,則將其設置為“ home”:

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

然后,您不需要if語句來檢查它是否已設置:

include "pages/$page.html";

聲明實際上是PHP開發中的最新內容,它們不是錯誤,這意味着您不必修復它們。 但是,這是一個非常好的做法。

undefined index通知會警告您,您正在嘗試讀取尚未初始化的數組索引。 在你的情況,你嘗試讀取home中的索引$_GET數組。 如果您的URL是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM