Lập trình web với PHP - p39

Chia sẻ: Yukogaru | Ngày: | Loại File: PDF | Số trang:7

0
182
lượt xem
122
download

Lập trình web với PHP - p39

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 9 : ĐIỀU KHIỂN VÀ TRÁNH NHỮNG LỖI 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.

Chủ đề:
Lưu

Nội dung Text: Lập trình web với PHP - p39

  1. Chương 9 : ĐIỀU KHIỂN VÀ TRÁNH NHỮNG LỖI 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. Tiếp xúc với lỗi Apache Web Server như thế nào? 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. Việc phát sinh lỗi PHP tiếp theo 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:
  2. echo “Fatal Error”; die(“A fatal error has occured at line $error_line of file “. “$error_file.” . “Error message created was "$error_message"”); break; //warnings case E_WARNING: echo “Warning”; echo “A warning has occured at line $error_line of file “. “$error_file.”; echo “ Error message created was "$error_message"”; //notices case E_NOTICE: //don’t show notice errors break; } } //set the error handler to be used set_error_handler(“handler”); //set string with “Wrox” spelled wrong $string_variable = “Worx books are great!”; //try to use str_replace to replace Worx with Wrox //this will generate an E_WARNING //because of wrong parameter count str_replace(“Worx”, “Wrox”);
  3. ?> 4. Lưu file và đưa lên trình duyệt. Kết quả như Hình 9.4. E_ERROR được gọi trong mệnh đề switch có thể sử dụng bất kỳ loại lỗi nào và thực hiện những hoạt động khác nhau tùy theo lỗi. 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. Ví dụ về việc tạo một trang lỗi rõ ràng 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:
  4. function handler($error_type, $error_message, $error_file, $error_line) { switch($error_type) { //fatal error case E_ERROR: $to = “Administrator ”; $subject = “Custom Error Handling”; $body = “”; $body .= “”; $body .= “Website error”; $body .= “”; $body .= “”; $body .= “Fatal Error”; $body .= “Error received was a ” . $error_type . “ error.”; $body .= “The page that generated the error was: ” . $error_file . “”; $body .= “ and was generated on line: ” . $error_line . “”; $body .= “The generated error message was:” . $error_message; $body .= “”; $body .= “”; $headers = “MIME-Version: 1.0\r\n”; $headers .= “Content-type: text/html; charset=iso-8859- 1\r\n”;
  5. $headers .= “From: Apache Error \r\n”; $headers .= “Cc: webmaster@yourdomain.com\r\n”; mail($to, $subject, $body, $headers); die(); //kill the script break; //warnings case E_WARNING: $to = “Administrator ”; $subject = “Custom Error Handling”; $body = “”; $body .= “”; $body .= “”; $body .= “”; $body .= “”; $body .= “Warning”; $body .= “Error received was a ” . $error_type . “ error.”; $body .= “The page that generated the error was: ” . $error_file . “”; $body .= “ and was generated on line: ” . $error_line . “”; $body .= “The generated error message was:” . $error_message; $body .= “”; $body .= “”; $headers = “MIME-Version: 1.0\r\n”; $headers .= “Content-type: text/html; charset=iso-8859- 1\r\n”;
  6. $headers .= “From: Apache Error \r\n”; $headers .= “Cc: webmaster@yourdomain.com\r\n”; mail($to, $subject, $body, $headers); break; //script will continue //notices case E_NOTICE: //don’t show notice errors break; } } /* set error handling to 0 we will handle all error reporting only notifying admin on warnings and fatal errors don’t bother with notices as they are trivial errors really only meant for debugging */ error_reporting(0); //set the error handler to be used set_error_handler(“handler”); /* Create the rest of your page here. We will not be displaying any errors We will be e-mailing the admin an error message Keep in mind that fatal errors will still halt the execution, but they will still notify the admin */
  7. ?> Nó hoạt động thế nào? Với cách này đưa ra thông báo đến người dùng những thông báo lỗi thông thường nhưng thân thiện đối với người dùng bằng cách dùng hàm email . Vì vậy, với cách đơn giản bạn chạy trang này và bạn nhận một lỗi, đôi khi đưa ra thông tin có ích cho người dùng.
Đồng bộ tài khoản