簡體   English   中英

在php中使用“get”時捕獲異常

[英]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.

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