Tôi đang cố gắng tắt tất cả các lỗi trên trang web của mình. Tôi đã làm theo các hướng dẫn khác nhau về cách thực hiện việc này, nhưng tôi tiếp tục nhận được các thông báo lỗi đọc và mở. Có điều gì tôi đang thiếu không?
Tôi đã thử những điều sau trong tệp Php.ini của mình:
;Error display
display_startup_errors = Off
display_errors = Off
html_errors = Off
docref_root = 0
docref_ext = 0
Vì một số lý do khi tôi thực hiện gọi fileOpen [] cho một tệp không tồn tại, tôi vẫn nhận được lỗi. Điều này không an toàn cho một trang web trực tiếp, vì những lý do rõ ràng.
Hỏi ngày 11 tháng 4 năm 2013 lúc 12:52Apr 11, 2013 at 12:52
3
Tôi luôn sử dụng một cái gì đó như thế này trong tệp cấu hình:
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
Điều này cho phép dễ dàng chuyển đổi giữa các cài đặt gỡ lỗi. Bạn có thể cải thiện điều này hơn nữa bằng cách kiểm tra máy chủ nào mã đang chạy [phát triển, kiểm tra, chấp nhận và sản xuất] và thay đổi cài đặt của bạn phù hợp.
Lưu ý rằng sẽ không có lỗi nào được ghi lại nếu ERROR_Reporting được đặt thành 0, như Korri nhận xét khéo léo.
Đã trả lời ngày 11 tháng 4 năm 2013 lúc 12:59Apr 11, 2013 at 12:59
SherlocksherlockSherlock
7.4076 Huy hiệu vàng36 Huy hiệu bạc79 Huy hiệu đồng6 gold badges36 silver badges79 bronze badges
4
Bạn nên xem xét không hiển thị thông báo lỗi của bạn thay thế!not displaying your error messages instead!
Đặt
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
4 trong mã PHP của bạn [hoặc trực tiếp vào tệp INI của bạn nếu có thể] và để lại error_Reporting trên // Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
5 hoặc bất kỳ loại tin nhắn nào bạn muốn tìm trong nhật ký của mình.Bằng cách này, bạn có thể xử lý các lỗi sau này, trong khi người dùng của bạn vẫn không nhìn thấy chúng.
Ví dụ đầy đủ:
define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
Hoặc đơn giản là [cùng một hiệu ứng]:
define['DEBUG', true];
error_reporting[E_ALL];
ini_set['display_errors', DEBUG ? 'On' : 'Off'];
Đã trả lời ngày 11 tháng 2 năm 2014 lúc 10:52Feb 11, 2014 at 10:52
LeviteleviteLevite
16.6K7 Huy hiệu vàng50 Huy hiệu bạc 50 Huy hiệu Đồng7 gold badges50 silver badges50 bronze badges
2
Trong
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
6, nhận xét ra:error_reporting = E_ALL & ~E_NOTICE
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
error_reporting = E_ALL & ~E_NOTICE
Bằng cách đặt
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
7 trước nó [tức là, như // Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
8]Để vô hiệu hóa trong một tệp duy nhất, hãy đặt
9 sau khi mở thẻ // Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
0., place define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
9 after opening a define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
0 tag.
Đã trả lời ngày 11 tháng 4 năm 2013 lúc 13:01Apr 11, 2013 at 13:01
Vishnu rvishnu rVishnu R
1.8493 huy hiệu vàng26 Huy hiệu bạc45 Huy hiệu đồng3 gold badges26 silver badges45 bronze badges
1
Trong tệp php.ini, bạn nên thử điều này cho tất cả các lỗi:
error_reporting = off
Urs
4.8847 Huy hiệu vàng 50 Huy hiệu bạc114 Huy hiệu đồng7 gold badges50 silver badges114 bronze badges
Đã trả lời ngày 1 tháng 4 năm 2014 lúc 15:45Apr 1, 2014 at 15:45
1
Hãy để tôi nhanh chóng tóm tắt điều này để tham khảo:
1 Điều chỉnh cài đặt hiện đang hoạt động cho trình xử lý lỗi mặc định.define['DEBUG', true]; error_reporting[E_ALL]; if [DEBUG] { ini_set['display_errors', 'On']; } else { ini_set['display_errors', 'Off']; }
Chỉnh sửa các tùy chọn báo cáo lỗi cũng thay đổi mặc định.
Ở đây, bắt buộc phải chỉnh sửa phiên bản
6 chính xác - thông thường là// Toggle this to change the setting define['DEBUG', true]; // You want all errors to be triggered error_reporting[E_ALL]; if[DEBUG == true] { // You're developing, so you want all errors to be shown display_errors[true]; // Logging is usually overkill during development log_errors[false]; } else { // You don't want to display errors on a production environment display_errors[false]; // You definitely want to log any occurring log_errors[true]; }
3 trên các máy chủ hiện đại, cách khác; Trong khi phiên bản CLI có một phiên bản khác biệt.define['DEBUG', true]; error_reporting[E_ALL]; if [DEBUG] { ini_set['display_errors', 'On']; } else { ini_set['display_errors', 'Off']; }
Ngoài ra, bạn có thể sử dụng tùy thuộc vào SAPI:
- mod_php:
5 với các tùy chọndefine['DEBUG', true]; error_reporting[E_ALL]; if [DEBUG] { ini_set['display_errors', 'On']; } else { ini_set['display_errors', 'Off']; }
6define['DEBUG', true]; error_reporting[E_ALL]; if [DEBUG] { ini_set['display_errors', 'On']; } else { ini_set['display_errors', 'Off']; }
- Fastcgi: thường là
6 địa phương// Toggle this to change the setting define['DEBUG', true]; // You want all errors to be triggered error_reporting[E_ALL]; if[DEBUG == true] { // You're developing, so you want all errors to be shown display_errors[true]; // Logging is usually overkill during development log_errors[false]; } else { // You don't want to display errors on a production environment display_errors[false]; // You definitely want to log any occurring log_errors[true]; }
- Và với PHP trên 5.3 cũng là
8define['DEBUG', true]; error_reporting[E_ALL]; if [DEBUG] { ini_set['display_errors', 'On']; } else { ini_set['display_errors', 'Off']; }
- mod_php:
Khởi động lại máy chủ web như bình thường.
Nếu mã của bạn khó sử dụng và bằng cách nào đó đặt lại các tùy chọn này ở nơi khác trong thời gian chạy, thì một cách thay thế và nhanh chóng là xác định một trình xử lý lỗi tùy chỉnh chỉ làm giảm tất cả các thông báo/cảnh báo/lỗi lên:
set_error_handler[function[]{}];
Một lần nữa, điều này là không nên, chỉ là một sự thay thế.
Đã trả lời ngày 30 tháng 7 năm 2014 lúc 1:16Jul 30, 2014 at 1:16
ariomariomario
Phù vàng 143K20 Huy hiệu vàng236 Huy hiệu đồng20 gold badges236 silver badges286 bronze badges
2
Trong tệp php.ini, bạn nên thử điều này cho tất cả các lỗi:
display_errors = On
Urs
- 4.8847 Huy hiệu vàng 50 Huy hiệu bạc114 Huy hiệu đồng
- Đã trả lời ngày 1 tháng 4 năm 2014 lúc 15:45
Hãy để tôi nhanh chóng tóm tắt điều này để tham khảo:Mar 10, 2015 at 4:26
1
define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
1 Điều chỉnh cài đặt hiện đang hoạt động cho trình xử lý lỗi mặc định.// Disable it all for current call
error_reporting[0];
Chỉnh sửa các tùy chọn báo cáo lỗi cũng thay đổi mặc định.
@any_function[]; // Errors are ignored
Ở đây, bắt buộc phải chỉnh sửa phiên bản
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
6 chính xác - thông thường là define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
3 trên các máy chủ hiện đại, cách khác; Trong khi phiên bản CLI có một phiên bản khác biệt.Apr 11, 2013 at 12:54
Ngoài ra, bạn có thể sử dụng tùy thuộc vào SAPI:Tim S.
mod_php:
5 với các tùy chọn define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
67
gold badges43 silver badges71 bronze badgesdefine['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
1
Fastcgi: thường là
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
6 địa phươngVà với PHP trên 5.3 cũng là
define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
8
Khởi động lại máy chủ web như bình thường.Mar 10, 2015 at 4:33
Nếu mã của bạn khó sử dụng và bằng cách nào đó đặt lại các tùy chọn này ở nơi khác trong thời gian chạy, thì một cách thay thế và nhanh chóng là xác định một trình xử lý lỗi tùy chỉnh chỉ làm giảm tất cả các thông báo/cảnh báo/lỗi lên:Vladimir Ramik
Một lần nữa, điều này là không nên, chỉ là một sự thay thế.2 gold badges12 silver badges23 bronze badges
Đã trả lời ngày 30 tháng 7 năm 2014 lúc 1:16
ariomario
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
0Phù vàng 143K20 Huy hiệu vàng236 Huy hiệu đồngE_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING]
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
1Tệp vị trí là:
Ubuntu 16.04: /etc/php/7.0/apache2Jan 5, 2016 at 9:26
UWU_SANDUNUWU_SANDUNUWU_SANDUN
Centos 7: /etc/php.ini13 silver badges18 bronze badges
Đã trả lời ngày 10 tháng 3 năm 2015 lúc 4:26www.conf. In my case it is in directory /etc/php/7.1/fpm/pool.d/
Bạn cũng có thể sử dụng
define['DEBUG', true];
error_reporting[E_ALL];
if [DEBUG]
{
ini_set['display_errors', 'On'];
}
else
{
ini_set['display_errors', 'Off'];
}
9 của PHP
Nếu bạn muốn bỏ qua các lỗi từ một chức năng, bạn có thể tạo biểu tượng
define['DEBUG', true];
error_reporting[E_ALL];
ini_set['display_errors', DEBUG ? 'On' : 'Off'];
0.Jan
25, 2019 at 16:55
Đã trả lời ngày 11 tháng 4 năm 2013 lúc 12:54Vazgen Manukyan
Tim S.Tim S.1 gold badge11 silver badges17 bronze badges
13.3k7 Huy hiệu vàng43 Huy hiệu bạc71 Huy hiệu đồng
Tôi thường sử dụng trình xử lý lỗi tích hợp của PHP có thể xử lý mọi lỗi có thể xảy ra ngoài cú pháp và vẫn hiển thị trang 'Down for Duy trì' tốt đẹp nếu không: nếu không:
Định dạng lỗi PHP trên máy chủ sản xuất
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
2Đã trả lời ngày 10 tháng 3 năm 2015 lúc 4:33
- Vladimir Ramikvladimir Ramik
- 1.9052 Huy hiệu vàng12 Huy hiệu bạc23 Huy hiệu đồng
Tôi có thể tạo phpinfo của riêng tôi [] không? Có bạn có thể
- Tạo trực tiếp phpinfo.php trong root của bạn hoặc bất cứ nơi nào bạn muốn
- Đặt cái này
4define['DEBUG', true]; error_reporting[E_ALL]; ini_set['display_errors', DEBUG ? 'On' : 'Off'];
- Lưu các tập tin.
- Mở tệp và bạn sẽ xem tất cả các chi tiết.
Cách đặt define['DEBUG', true];
error_reporting[E_ALL];
ini_set['display_errors', DEBUG ? 'On' : 'Off'];
5 thành define['DEBUG', true];
error_reporting[E_ALL];
ini_set['display_errors', DEBUG ? 'On' : 'Off'];
6 trong tệp của riêng tôi mà không cần sử dụng php.ini
define['DEBUG', true];
error_reporting[E_ALL];
ini_set['display_errors', DEBUG ? 'On' : 'Off'];
define['DEBUG', true];
error_reporting[E_ALL];
ini_set['display_errors', DEBUG ? 'On' : 'Off'];
Bạn có thể làm điều này bằng cách sử dụng hàm
define['DEBUG', true];
error_reporting[E_ALL];
ini_set['display_errors', DEBUG ? 'On' : 'Off'];
7. Đọc thêm về ini_set [] tại đây [//www.php.net/manual/en/function.ini-set.php]- Truy cập tiêu đề của bạn.php hoặc index.php
- Thêm mã này
8define['DEBUG', true]; error_reporting[E_ALL]; ini_set['display_errors', DEBUG ? 'On' : 'Off'];
Để kiểm tra đầu ra mà không cần truy cập vào tệp php.ini
// Toggle this to change the setting
define['DEBUG', true];
// You want all errors to be triggered
error_reporting[E_ALL];
if[DEBUG == true]
{
// You're developing, so you want all errors to be shown
display_errors[true];
// Logging is usually overkill during development
log_errors[false];
}
else
{
// You don't want to display errors on a production environment
display_errors[false];
// You definitely want to log any occurring
log_errors[true];
}
3Đã trả lời ngày 30 tháng 7 năm 2020 lúc 23:50Jul 30, 2020 at 23:50
DexterDexterDexter
6.5023 huy hiệu vàng36 Huy hiệu bạc34 Huy hiệu đồng3 gold badges36 silver badges34 bronze badges