Error Handle 2007-07-09 09:26:13


Trong qua trình lập trình, hầu hết các lỗi PHP đều được hiển thị ra ngoài để dễ chỉnh sữa, tuy nhiên khi trang web vào hoạt động chính thức thì ta nên tắt hết các lỗi đó hoặc control lỗi đó theo ý mình, như vậy giúp an toàn hơn trong vấn đề bảo mật.
<?php
/*******************************************************
* BASIC Template Engine is a simple template engine *
* Copyright @ 2007 the phpGroupVN *
* @param: Customer PHP Error Message *
* website: www.phpbasic.com *
* Email: admin@phpbasic.com *
********************************************************/

function phpBASICerror($errno, $errmsg, $filename, $linenum, $vars)
{
$dt = date("Y-m-d h:i:s");
$errortype = array (
E_USER_ERROR => 'BASIC Fatal Error',
E_ERROR => 'BASIC Error',
E_WARNING => 'BASIC Warning',
E_PARSE => 'BASIC Parsing Error',
E_NOTICE => 'BASIC Notice',
E_CORE_ERROR => 'BASIC Core Error',
E_CORE_WARNING => 'BASIC Core Warning',
E_COMPILE_ERROR => 'BASIC Compile Error',
E_COMPILE_WARNING => 'BASIC Compile Warning',
E_USER_ERROR => 'BASIC User Error',
E_USER_WARNING => 'BASIC User Warning',
E_USER_NOTICE => 'BASIC User Notice',
E_STRICT => 'BASIC Runtime Notice',
E_RECOVERABLE_ERROR => 'BASIC Catchable Fatal Error'
);
$user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
$err = "";
$err .= "tDATE: " . $dt . "n";
$err .= "tERROR_NUM: " . $errno . "n";
$err .= "tERROR_TYPE:" . $errortype[$errno] . "n";
$err .= "tERROR_MSG: " . preg_replace('/function.(.*)/i','http://phpbasic.com/function.\1',$errmsg) . "<br />n";
$err .= "tFILE: " . $filename . "n";
$err .= "tLINES: " . $linenum . "n";
$err .= "nn";
error_log($err, 3, "error.log");
}
set_error_handler("phpBASICerror");
error_reporting(E_ALL);
//Các đoạn code sau viết bình thường
?>

Đây là đoạn code để handle lại error_reporting(); (phần báo lỗi của PHP) nên bạn phải đặt nó ở đầu của web site để nó có thể handle tất cả các lỗi trên web.

*chú thích:
error_reporting(VALUE);
VALUE :
0: không hiển thị bất kỳ lỗi gì
E_ALL: bật tất cả các lỗi
E_WARNING: chỉ hiển thị các WARNING
E_NOTICE: chỉ hiện thị các NOTICE
.........................
Tác giả: TG

Tra loi 4 comment(s) Nguyễn Minh Tân 2007-07-09 09:26:13

Doangia 2007-07-11 11:19:59

Cái hày còn tùy thuộc vào php.ini nữa thì phải

Tra loi

www.ticsoft.com 2008-09-14 09:57:54

Cảm ơn bài viết rất hay ...!

Tra loi

ndthuan 2008-09-15 10:07:45

Mấy ông ticsoft này đi quảng cáo mà chuối nhỉ! :D

Ý đồ chèn link tăng rank nhưng mà mấy comment này do Javascript show ra, mấy cái SE spider nó đâu có thực thi được JS lolz

Tra loi

Quan Tran Anh 2008-09-15 10:25:27

Ôi thế ra mấy cái quảng cáo của ông Ticsoft là chèn = javascript à, cứ tưởng viết sẵn nội dung bài xong đi spam chứ >:) Lâu lắm không nói chuyện rồi nhở. Dạo này cty tui chuyển sang xài Skype, nên ko online = YM nữa :D

Tra loi

Y kien