[英]Notice: Undefined offset: 1 in C:\xampp\htdocs\index.php on line 5
[英]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.