Tại sao php không hiển thị lỗi?
Một ứng dụng PHP tạo ra một số cấp độ lỗi và cảnh báo trong thời gian chạy tập lệnh. PHP cung cấp bốn cách khác nhau để hiển thị các lỗi và cảnh báo này, được liệt kê bên dưới Show
Có một vài dòng mã được cung cấp bên dưới, hãy thêm mã này vào tệp PHP của bạn để hiển thị lỗi. Đó là cách nhanh nhất để hiển thị tất cả các lỗi và cảnh báo PHP Hoạt động của chức năng và chỉ thị trên như sau ini_set() Chức năng này cố gắng ghi đè lên cấu hình được tìm thấy trong php. tập tin ini display_errors display_errors là một lệnh xác định xem lỗi sẽ hiển thị cho người dùng hay vẫn ẩn. Nó không xử lý các lỗi xảy ra trong trình tự khởi động của PHP display_startup_errors display_startup_errors cũng là một lệnh, được sử dụng để tìm lỗi trong chuỗi khởi động của PHP báo cáo lỗi() error_reporting là một chức năng gốc của PHP. Nó được sử dụng để hiển thị lỗi Chương trìnhđầu ra Đầu ra sẽ được hiển thị một cảnh báo cho trình duyệt Warning: include(jtp.php): failed to open stream: No such file or directory in C:\xampp\htdocs\program\phperror.php on line 6 Warning: include(): Failed opening 'jtp.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\program\phperror.php on line 6 Ghi chú. Cả hai lệnh này display_errors và display_startup_errors sẽ không thể hiển thị lỗi phân tích cú pháp. Do đó, PHP. cấu hình ini phải được sửa đổiĐịnh cấu hình PHP. ini để hiển thị tất cả các lỗi và cảnh báoNhững thay đổi sau đây phải được thực hiện trong php. ini để hiển thị tất cả các lỗi, bao gồm lỗi phân tích cú pháp và khởi động lại máy chủ apache trong xampp Đặt lệnh display_errors thành "bật" trong PHP. tập tin ini. Nó sẽ hiển thị tất cả các lỗi, không thể hiển thị bằng cách chỉ gọi hàm ini_set(), chẳng hạn như - lỗi cú pháp và lỗi phân tích cú pháp Chương trìnhChương trình PHP khi display_errors bị tắt hoặc tắt trong php. tập tin ini đầu ra Đầu ra sẽ được hiển thị cho trình duyệt như ảnh chụp màn hình bên dưới khi lệnh display_errors bị tắt đầu ra Đầu ra cho chương trình trên khi display_errors được bật hoặc bật trong php. ini và máy chủ được khởi động lại Cấp báo cáo lỗiNhư chúng ta đã thảo luận rằng PHP tạo ra các mức lỗi khác nhau. Vì vậy, hãy tìm hiểu loại lỗi nào được tạo ra trong mã PHP Có hai phương pháp để xem các lỗi PHP xảy ra khi chạy trang web của bạn. Bạn có thể hiển thị lỗi trực tiếp trên trang web của mình (có thể xem được từ bất kỳ trình duyệt web nào) hoặc bật ghi nhật ký lỗi để ghi lỗi vào một tệp được chỉ định (có thể xem được bên trong tệp văn bản). Bài viết này sẽ đề cập đến cách bật và tắt display_errors, điều chỉnh cài đặt báo cáo lỗi, định cấu hình ghi nhật ký lỗi và sử dụng hàm ini_set() để giúp khắc phục lỗi PHP với trang web của bạn
CẢNH BÁO. Các hướng dẫn này được viết cho cấu hình EasyApache 3 PHP/Apache. Cấu hình cũ hơn này xử lý hiệu quả các sửa đổi trực tiếp đối với php. tập tin ini. Tuy nhiên, nếu bạn đang chạy EasyApache 4, thì cPanel/WHM được thiết kế để duy trì tệp php. tập tin ini. Mọi thay đổi được thực hiện trực tiếp với php. ini (trong khi sử dụng EA3) có thể khiến chức năng này không hoạt động như mong đợi. Đảm bảo kiểm tra phiên bản EasyApache bạn đang chạy, trước khi thực hiện các sửa đổi như đã nêu trong bài viết này chỉnh sửa php. ini để hiển thị lỗiTrong khi trang web của bạn đang hoạt động, php. ini nên bị tắt display_errors vì lý do bảo mật. Tuy nhiên, đối với môi trường phát triển, có thể bật display_errors để khắc phục sự cố. Nên tắt hiển thị lỗi khi trang web đang hoạt động, để bảo vệ thông tin nhạy cảm và không can thiệp vào định dạng trang web của bạn. Khi display_errors được Bật, các trang trên trang web của bạn sẽ hiển thị bất kỳ lỗi PHP nào gặp phải khi tải trang web của bạn trong trình duyệt. Phần này sẽ giải thích cách kiểm soát báo cáo lỗi và Bật và Tắt display_errors
php. ini Cài đặt Báo cáo LỗiPHP có một danh sách các cài đặt báo cáo lỗi khác nhau trong php. ini chính nó. Ví dụ: nếu bạn chỉ muốn hiển thị các cảnh báo, bạn có thể thay đổi dòng error_reporting thành như sau error_reporting = E_WARNING Bảng sau được tạo từ các cài đặt được tìm thấy trong một tệp php tiêu chuẩn. tập tin ini. Tham khảo bảng sau để biết các tùy chọn khả dụng Danh sách các tùy chọn có sẵn được lấy từ php. iniDescriptionE_ALLTất cả lỗi và cảnh báoE_ERRORLỗi thời gian chạy nghiêm trọngE_WARNINGcảnh báo thời gian chạy (lỗi không nghiêm trọng)E_PARSElỗi phân tích cú pháp thời gian biên dịchE_DEPRECATEDthông báo về việc sử dụng các chức năng sẽ bị gỡ bỏ trong phiên bản tương laiE_NOTICEthông báo thời gian chạy (đây là những cảnh báo thường xuất phát từ một lỗi trong . g. , sử dụng một biến chưa được khởi tạo và dựa vào thực tế là nó được khởi tạo tự động thành một chuỗi trống)E_CORE_ERRORlỗi nghiêm trọng xảy ra trong quá trình khởi động ban đầu của PHPE_CORE_WARNINGcảnh báo (lỗi không nghiêm trọng) xảy ra trong quá trình khởi động ban đầu của PHPE_COMPILE_ERRORlỗi thời gian biên dịch nghiêm trọngE_COMPILE_WARNINGcảnh báo thời gian biên dịch (lỗi không nghiêm trọngBật Lỗi đăng nhậpTheo mặc định, các lỗi được ghi vào error_log, được đặt thành/dev/null. Điều này có nghĩa là lỗi ghi nhật ký sẽ không xảy ra. Khi bật lỗi, các lỗi sẽ được lưu trữ trong một tệp trong thư mục xảy ra lỗi trong. Ví dụ: nếu bạn có tệp PHP có tên là chỉ mục. php trong thư mục con như public_html/wordpress, nếu bạn gặp bất kỳ lỗi PHP nào khi chạy tập lệnh của tệp đó, nhật ký lỗi sẽ được lưu trong thư mục đó (public_html/wordpress). Bạn có thể chỉ định (trong php. ini) tập tin nào để lưu trữ tất cả các lỗi trong Quan trọng. Bạn phải đặt đoạn mã sau vào. htaccess để tạo php cục bộ. ini hoạt động cho thư mục hiện tại nơi. htaccess cư trú và tất cả các thư mục con trong
IfModule khiến Apache chỉ tải lệnh nếu suPHP được sử dụng, vì vậy trang web không bị hỏng nếu chuyển sang trình xử lý PHP khác, chẳng hạn như DSO Để biết thêm thông tin về suPHP và DSO, vui lòng xem bài viết của chúng tôi về Chọn trình xử lý PHP tốt nhất
Sử dụng int_set() để hiển thị lỗiTrong trường hợp bạn muốn lỗi không hiển thị trên toàn trang và muốn kiểm tra lỗi trên một trang duy nhất, bạn có thể sử dụng hàm ini_set() để hiển thị lỗi trên một trang cụ thể. Cú pháp cơ bản từ php. net hiển thị hàm và các tham số của nó như sau ; - Show all errors, except for notices ; ;error_reporting = E_ALL & ~E_NOTICE ;0 Điều này có thể được đặt ở đầu trang PHP của bạn, với biến error_reporting trong đó, để cho phép kiểm tra lỗi cho trang cụ thể đó. Dưới đây là các bước để làm điều này
Duy trì tệp nhật ký của bạnBây giờ bạn đã kích hoạt ghi nhật ký lỗi, hãy đảm bảo duy trì các tệp nhật ký của bạn. Nếu bạn thường xuyên gặp lỗi, hãy nhớ xóa nhật ký định kỳ. Bạn có thể làm như vậy bằng cách xóa tệp khỏi Trình quản lý tệp hoặc thông qua bất kỳ phương pháp nào khác mà bạn muốn quản lý tệp của mình. Một tệp nhật ký lớn đôi khi có thể gây ra sự cố do có thể lấp đầy dung lượng ổ đĩa của bạn hoặc nếu trên dịch vụ lưu trữ được chia sẻ có dung lượng ổ đĩa không giới hạn, bắt đầu ảnh hưởng đến những khách hàng khác trên máy chủ |