」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何避免 PHP $_POST 的「未定義索引」錯誤?

如何避免 PHP $_POST 的「未定義索引」錯誤?

發佈於2024-11-01
瀏覽:650

How to Avoid PHP \

PHP Undefined Index with $_POST [重複]

在PHP 中,存取未設定的陣列元素會觸發執行階段錯誤,​​導致“未定義索引”通知。在測試表單中的空變數(例如使用者登入腳本)時,通常會發生這種情況。

您的簡化程式碼示範了該問題:

$user = $_POST["username"];
if($user != null)
{
    echo $user;
    echo " is your username";
}
else
{
    echo "no username supplied";
}

雖然當存在使用者名稱時程式碼可以按預期工作,但當沒有提供使用者名稱時,它會失敗並顯示錯誤「未定義索引:使用者名稱」。發生這種情況是因為在未提交資料時 $_POST 沒有「使用者名稱」鍵。

要解決此問題,請在存取變數或陣列元素之前使用 isset() 運算子檢查其是否存在。這樣,在嘗試檢索值之前就可以防止錯誤。

if (isset($_POST["username"]))
{
    $user = $_POST["username"];
    echo "$user is your username";
}
else
{
    $user = null;
    echo "no username supplied";
}

在此更新的程式碼中,isset() 在將其值指派給 $user 之前確保 $_POST 中存在「username」鍵。這消除了運行時錯誤,並允許您正確處理空用戶名的情況。

值得注意的是,缺少陣列元素是輕微的運行時錯誤(E_NOTICE 等級)。忽略通知可以讓您的程式碼按預期執行,但這被認為是不好的做法,特別是在生產環境中。

版本聲明 本文轉載於:1729211175如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3