[Mẹo] Xử lý khi NukeViet xuất hiện lỗi cảnh báo hoặc trắng trang

Thứ hai - 27/07/2015 08:23
Nếu bạn đang lập trình dựa trên NukeViet, ắt hẳn các lỗi cảnh báo, trắng trang luôn song hành cùng bạn. Mẹo nhỏ dưới đây phần nào giúp bạn xử lý các lỗi, thông báo trên dễ dàng hơn.
Tính năng ẩn lỗi khi xuất hiện các lỗi nghiêm trọng ( lỗi trắng trang ) hoặc thông báo từ hệ thống ( lỗi cảnh báo ) trên NukeViet có thể coi là một phần trong tính năng bảo mật, giúp tránh hiển thị quá chi tiết các lỗi và tạo cơ hội cho kẻ xấu lợi dụng.
Tuy vậy, khi bạn lập trình trên NukeViet mà lỗi trả về chỉ là một trang trắng xoá, hoặc thoắt ẩn thoắt hiện thì cũng thật phiền. Mẹo nhỏ dưới đây có lẽ sẽ phần nào giúp bạn khi lập trình.
 
1/ Luôn hiển thị các dòng báo lỗi cảnh báo
 
Lỗi cảnh báo trên NukeViet

Lỗi cảnh báo thường xảy ra khi trong các dòng lập trình của bạn khai báo thiếu biến, thuộc tính, sai logic hoặc dùng một hàm đã cũ và sắp bị gỡ bỏ ... nhưng hầu hết đều không ảnh hưởng nặng đến site. Nếu không chắc chắn rằng có thể sửa được lỗi, bạn có thể bỏ qua chúng vì trang vẫn sẽ vận hành tương đối "bình thường".

Về cơ bản, các lỗi cảnh báo sẽ được cache trên hệ thống, sau khi hiển thị một lần thì sẽ ẩn cho đến khi nào bạn tiến hành dọn dẹp hệ thống thì sẽ lại xuất hiện.
Để luôn hiển thị các lỗi này, bạn có thể tiến hành các bước dưới đây :

Mở includes/class/error.class.php
Tìm và xóa (hoặc comment) dòng (khoảng dòng 400)
file_put_contents( $track_errors, '', FILE_APPEND );
2. Hiển thị chi tiết lỗi khi bị các lỗi liên quan đến PHP.

Trong trường hợp bạn lập trình có truy vấn đến CSDL hoặc sai các lỗi trầm trọng liên quan đến PHP, mặc định hệ thống sẽ không hiển thị thông báo lỗi mà hiển thị nền trang trắng. Điều này sẽ gây khó khăn cho quá trình debug vì bạn chẳng biết lỗi gì và lỗi ở đâu.
Hãy tiến hành các bước sau để cho phép hệ thống hiển thị chi tiết các thông báo lỗi.


Mở mainfile.php
Tìm và xóa (hoặc comment) những đoạn code

error_reporting( 0 );

require NV_ROOTDIR . '/includes/class/error.class.php';$ErrorHandler = new Error( $global_config );set_error_handler( array( &$ErrorHandler, 'error_handler' ) );
Ở một số phiên bản NukeViet Beta sau này ( khoảng từ 4.0.18 về sau ) thì bạn chỉ cần điều chỉnh
// Ket noi voi class Error_handler$ErrorHandler = new Error( $global_config );set_error_handler( array( &$ErrorHandler, 'error_handler' ) );

Cũng xin lưu ý là bạn nên trả lại tình trạng nguyên gốc cho các cấu hình bên trên khi đưa website vào vận hành, tránh các vấn đề không mong muốn có thể xảy ra.
Và cuối cùng, chúc các bạn thành công.

Tổng số điểm của bài viết là: 10 trong 2 đánh giá

Xếp hạng: 5 - 2 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

Mã bảo mật   
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây