9 :
Sau khi viết mã lệnh, người mới lập trình sẽ gặp không ít khó khăn trong việc tìm
ra lỗi và chỉnh sửa lỗi. PHP hỗ trợ đầy đủ tính năng lập trình giao diện API (Applications
Programming Interface) có thể tìm ra lỗi và khắc phục những lỗi ấy. Ngoài PHP thì
Apache Web Server cũng hỗ trợ người lập trình tìm ra lỗi và khắc phục lỗi.
Apache có một thư mục Lỗi tài liệu, bạn có thể định cấu hình trong file httpd.conf
để tạo ra những trang thông báo lỗi với PHP, vì thế người thăm trang web không thấy
buồn chán. PHP tạo ra trang web thông báo lỗi thân thiện cho người dùng.
Không giống những trang thông báo lỗi như PHP, trang của Apache được sử dụng
nhiều cho những trang đã mất.
3. Vì lỗi của bạn là do người dùng định nghĩa, bạn có thể bắt lỗi và có thể tạo lại thông
báo lỗi dựa vào kiểu lỗi. Tạo file custom_error.php để sắp xếp những lỗi như sau:
<?php
//create your error handler function
function handler($error_type,
$error_message,
$error_file,
$error_line)
{
switch ($error_type)
{
//fatal error
case E_ERROR:
echo “<h1>Fatal Error</h1>”;
die(“A fatal error has occured at line $error_line of file
“ .
“$error_file.<br>” .
Hình 9.4.
Nó hoạt động thế nào?
Tạo ra thông báo lỗi cho bạn điều khiển đầy đủ những trang web của bạn, bất chấp
thành công hay thất bại khi thi hành. Bạn sẽ bắt lỗi, đưa ra thông báo lỗi, hồ sơ thông báo
lỗi và lỗi nào xuất hiện. Trang web mà bạn đưa ra thông báo lỗi, trình bày hoặc gởi thông
báo nhất định đến người dùng phụ thuộc vào lỗi mà người dùng mắc phải.
Bạn đã tạo ra thông báo lỗi nhưng không muốn người dùng nhìn thấy thông báo
ấy, bạn có thể lịch sự xin lỗi người dùng hãy qua một trang khác vì trang này đang bị lỗi
như thế người dùng không thấy lỗi của mình. Dùng phương pháp email có thể cho người
dùng không trực tiếp xem xét cơ sở dữ liệu mà là có bao nhiêu yêu cầu tới trang lỗi xuất
hiện.
Trong bài này, bạn sẽ thiết lập việc thi hành một lỗi rõ ràng như bạn muốn. Bạn có
thể tìm tất cả những lỗi mà không cần sử dụng những hướng dẫn có sẵn trong PHP
1. Trình soạn thảo feature_error.php như sau:
<?php
//create your error handler function
function handler($error_type,
$error_message,
$error_file,
$error_line) {
switch($error_type)
{
//fatal error
case E_ERROR:
$to = “Administrator <[email protected]>”;
$subject = “Custom Error Handling”;
$body = “<html>”;
$body .= “<head>”;
$body .= “<title>Website error</title>”;
$body .= “<body>”;
$body .= “<h1>Warning</h1>”;
$body .= “Error received was a <b>” . $error_type .
“</b> error.<br>”;
$body .= “The page that generated the error was: <b>” .
$error_file . “</b>”;
$body .= “ and was generated on line: <b>” . $error_line .
“</b><br>”;
$body .= “The generated error message was:” .
$error_message;
$body .= “</body>”;
$body .= “</html>”;
$headers = “MIME-Version: 1.0\r\n”;
$headers .= “Content-type: text/html; charset=iso-8859-
1\r\n”;