php自定义错误处理

时间:2011-03-03 05:37:27

标签: php error-handling

我有一个问题。

在我的网站上,我有以下错误报告级别

// PHP errors that will be reported when the script is run.
error_reporting(0);

问题是当会话超时时我得到一个空白页面,用户必须再次输入地址才能进入主页面并登录。

有没有办法将链接嵌入到上面的代码中,所以当会话超时时它会回显到主页面的链接?

我试过

// PHP errors that will be reported when the script is run.
error_reporting(0);
echo ("index.php");
没有运气, 任何想法?

谢谢你。 :)

2 个答案:

答案 0 :(得分:2)

如果用户的会话已过期,您的会话检查代码应对您的登录页面执行HTTP重定向。

session_start();

// Check if User is logged in
if (!isset($_SESSION['current_user'])) {
    header("Location: http://example.com/login");
    exit;
}

// Code to run when a User is logged in

....

答案 1 :(得分:0)

哦,亲爱的。

> error_reporting(0);

错误应始终报告 - 但您应将display_errors设置为'off'以用于生产系统。

> so when the session times out...

会话超时不会引发错误。要么是你的代码触发了错误,要么你正在谈论请求超时。 (如果你没有禁用错误报告,你可能已经能够自己解决这个问题了。)

Stephen提供了一个如何检查无效会话状态的示例,但是从您自己的代码中抛出错误并不一定是坏事,只要您提供捕获它们的机制 - 见set_error_handler