2013-10-22 28 views
0

我有一個使用$ _GET從上一頁獲取變量的php頁面。當用戶更改Url中的參數時發生Php Db錯誤時的錯誤頁面重定向

所以在這個頁面我已經宣佈它

例如

$id=$_GET['id']; 
$car=$_GET['car']; 

然後,我有一個使用這個變量一些PHP函數。

所以URL這個頁面看起來像

www.example.com/secondpage?id=1&car=1 

財產以後現在,如果用戶編輯此URL,並刪除ID = 1,我的第二頁顯示了MySQL錯誤......如何重定向此到一個錯誤頁面,每當有人玩弄一個網址,並因此有一個MySQL錯誤.....?

在此先感謝

+0

如果任何給定的答案幫助你 - 請接受它給予這個人的獎勵:) –

回答

0

因此,你可以用戶header你可以做一個重定向用的StatusCode 302。

if(empty($id) || empty($car)){ 
    header("location: http://www.example.com/my_error_page.html"); 
} 

重要的是,任何輸出由之前執行該語句。 empty()檢查參數是否爲0,「」或null。所以它不檢查提供的id是否實際存在。

0

不要在你的腳本最開頭以下:empty將返回true爲"0",例如,當header不能稱爲如果:

if(!isset($_GET['id'] || empty($_GET['id'] || !isset($_GET['cart'] || empty($_GET['cart']) 
    header('Location: error.php'); 

注意的emptyheader功能兩者的限制任何輸出已被髮送。有關更多限制,請參閱手冊。

0

在您secondpage.php,當你做的函數來獲取信息:

$variable = $_GET['variableA'] 

它改成這樣:

$variable = $_GET['variableA'] 
if(isset($variable)) 
{ 
    //Do something if ID exists 
} 
else 
{ 
    //Do Error Handling or header redirect 
} 

這得到的變量,如果它不存在它會爲空。 IF ststement檢查它是否是一個值(不爲空)並執行你的代碼,如果它是null,那麼else語句運行,這裏是你放錯誤信息的地方。

你可以使用頭重定向到另一個p [年齡但是這必須在任何代碼發送到頁面(包括HTML和PHP回聲)之前運行。

要添加其他語句,只需將它們添加到if語句。

if(isset($variable) && isset($variable2)) 
相關問題