2010-04-16 34 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