[英]Catching exceptions while using “get” in php
我是php的新手,我想知道如何捕獲在post參數上使用“get”時發生的錯誤。
我的頁面將包含以下網址:
http://www.mysite.com/page.php?id=5
但是,如果站點上不存在id,我希望能夠將用戶重定向到主頁面。 我怎么能在PHP中這樣做?
頁面到達此行時崩潰:
$ID = $_GET['id'];
它給了我這個錯誤:
<b>Notice</b>: Undefined index: id in <b>//test.php</b> on line <b>36</b><br />
一般而言,重定向不是處理無效ID的正確方法。
按照標准,應發布404標頭。
因此,只需查詢您的數據庫以獲取給定的ID,如果沒有返回數據,請顯示帶有適當標頭的404頁面。 但是,后一頁可能會使用JS重定向到主頁面。
說到異常 ,一般來說,如果使用得當,任何異常都會引發503錯誤。
但是表中缺少某些id不應該引發任何系統級錯誤。 它是程序邏輯級別,應該無異常地處理這些錯誤。
對於初學者,您需要有一些方法來檢查傳遞的ID是否對您的站點有效。 最好的方法可能是編寫一個檢查您的函數,然后根據其結果重定向。
function valid_id( $id ){
// Talk to your database and check the ID, then return TRUE or FALSE
}
if( !valid_id( $_GET["id"] ) ){
// Redirect to a 404 page or the site index
}
// Normal page loading goes here
如果您正在尋找最簡單的解決方案,只需在使用之前檢查變量是否已設置:
if (isset($_GET['id']) {
// 'id' exists, do anything you want with it
}else {
// 'id' wasn't provided, redirect with header() or call a 404 page
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.