2011-12-18 52 views
0

需要以下代碼的幫助,當提交下一個腳本從數據庫獲取數據時,我有一個提供「id」的表單,如果由於某種原因「id」是零,我如何轉發網址到我的404頁面。PHP如果「id」null移動到url

代碼:

$id=$_GET['id']; 
     include ('dbconnection.php'); 
     include ('dbopen.php'); 
     include ('header.php'); 

我曾嘗試以下,但沒有成功,如果「ID」值爲null移動客戶端的404.php頁面。

if (isset($_GET['id']) && !empty($_GET['id'])) { 

    header('Location: index.php'); 
} 

請幫助:d

+0

可能的重複[如何在PHP中創建一個錯誤404?](http://stackoverflow.com/questions/1381123/how-can-i-create-an-error-404-in-php) – 2011-12-18 15:17:06

回答

4

使用此:

if (!isset($_GET['id']) || empty($_GET['id'])) { 
    header('Location: 404.php'); 
    exit(); // don't execute any code after it! 
} 
+0

這會產生「軟404」,這將導致抓取工具出現問題。當找不到東西時,應該使用'header('HTTP/1.1 404 not found');'並顯示錯誤而不重定向。 – Kornel 2011-12-18 15:34:49

+0

我知道,但他問了這一點,我認爲目前的協議是'HTTP/1.0' – noob 2011-12-18 16:31:42

+0

輸出HTTP/1.0或1.1 - 無關緊要 - 服務器將爲您處理細節。您輸出的狀態是關鍵區別。 – Kornel 2011-12-18 16:40:53

1

您的代碼應該工作。但在標題之前不應該有任何輸出(回顯或內容)。