2010-04-16 60 views
3

對於大家都在想的error_reporting()函數,那麼它是不是,我需要的是每當MySQL查詢已經完成,並聲明有一個像好的錯誤標記| PHP

if($result) 
{ 
    echo "Yes, it was fine... bla bla"; 
} 
else 
{ 
    echo "Obviously, the echo'ing will show in a white page with the text ONLY..."; 
} 

每當陳述是真實的或false,我希望在使用header()函數重定向時出現錯誤,並在頁面某處的div中回顯錯誤報告。

基本上是這樣的:

$error = ''; 

這部分出現在div標籤

<div><?php echo $error; ?></div> 

因此,當與頭部()

if($result) 
{ 
    $error = "Yes, it was fine... bla bla"; 
    header("Location: url"); 
} 
else 
{ 
    $error = "Something wrong happened..."; 
    header("Location: url"); 
} 
重定向錯誤的部分將被回波內

但這只是不起作用:(

+0

請記住,http是一個請求/響應協議。因此,您的腳本正在使用Location標頭進行響應(並且基本終止),並告訴瀏覽器向您的應用程序(或URL所指向的任何位置)發出* new *請求。 $ error中的當前值僅在當前請求中可用,而不是在新請求中。 – 2010-04-16 23:54:25

回答

2

您可以使用$ _SESSION superglobal。

示例代碼:

/* in mysql result checking */ 
$_SESSION["error"] = "Something wrong happened..."; 

/* in div tags */ 
if(!empty($_SESSION["error"])) { 
    echo $_SESSION["error"]; 
    $_SESSION["error"] = ""; 
} 

我也認爲你需要調用session_start()在腳本的開始,如果沒有做過的事情。

這不會因爲error工作最好的問候,
T.

1

url聲明。發送位置標題時,您只需丟棄(取消設置)error變量。

你應該讓自己的錯誤代碼,例如:

0001 = ok 
0002 = DB_error 
... 

,並送他們低谷GET變量,catch'em在url和解析。

header('Location: url?error='.urlencode($error)); 
+1

請將urlencode()中的$ error封裝到url地址中。謝謝。 ;-) – 2010-04-16 23:56:00