Làm cách nào để chặn cảnh báo trong php?

Gần đây, một trong những độc giả của chúng tôi đã hỏi làm cách nào để tắt lỗi PHP trong WordPress? . Tuy nhiên, nó trông cực kỳ thiếu chuyên nghiệp khi chúng hiển thị với tất cả khách truy cập trang web của bạn. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách dễ dàng tắt lỗi PHP trong WordPress

Tại sao và khi nào bạn nên tắt lỗi PHP trong WordPress?

Các lỗi PHP mà bạn có thể thấy trên trang web WordPress của mình thường là các cảnh báo và thông báo. Đây không giống như lỗi máy chủ nội bộ, lỗi cú pháp hoặc lỗi nghiêm trọng khiến trang web của bạn không tải được

Thông báo và cảnh báo là loại lỗi không ngăn WordPress tải trang web của bạn. Xem cách WordPress thực sự hoạt động đằng sau hậu trường để biết thêm chi tiết

Mục đích của những lỗi này là để giúp các nhà phát triển gỡ lỗi các vấn đề với mã của họ. Các nhà phát triển plugin và chủ đề cần thông tin này để kiểm tra tính tương thích và các phương pháp hay nhất

Tuy nhiên, nếu bạn không phát triển chủ đề, plugin hoặc trang web tùy chỉnh thì những lỗi này sẽ bị ẩn đi. Bởi vì nếu chúng xuất hiện ở mặt trước của trang web của bạn cho tất cả khách truy cập của bạn, điều đó trông cực kỳ thiếu chuyên nghiệp

Nếu bạn thấy lỗi như trên trên trang web của mình, thì bạn có thể muốn thông báo cho nhà phát triển plugin hoặc chủ đề tương ứng. Họ có thể phát hành một bản sửa lỗi sẽ làm cho lỗi biến mất. Trong khi đó, bạn cũng có thể tắt các lỗi này

Hãy xem cách dễ dàng tắt các lỗi, thông báo và cảnh báo PHP trong WordPress

Tắt lỗi PHP trong WordPress

Đối với phần này, bạn sẽ cần chỉnh sửa wp-config. tập tin php

Bên trong wp-config của bạn. php, hãy tìm dòng sau

define['WP_DEBUG', true];

Cũng có thể, dòng này đã được đặt thành false. Trong trường hợp đó, bạn sẽ thấy đoạn mã sau

define['WP_DEBUG', false];

Trong cả hai trường hợp, bạn cần thay thế dòng này bằng đoạn mã sau

ini_set['display_errors','Off'];
ini_set['error_reporting', E_ALL ];
define['WP_DEBUG', false];
define['WP_DEBUG_DISPLAY', false];

Đừng quên lưu các thay đổi của bạn và tải lên wp-config của bạn. php trở lại máy chủ

Giờ đây, bạn có thể truy cập trang web của mình để xác nhận rằng các lỗi, thông báo và cảnh báo PHP đã biến mất khỏi trang web của bạn

Bật lỗi PHP trong WordPress

Nếu bạn đang làm việc trên một trang web trên máy chủ cục bộ hoặc khu vực tổ chức, thì bạn có thể muốn bật báo cáo lỗi. Trong trường hợp đó, bạn cần chỉnh sửa wp-config của mình. php và thay thế mã bạn đã thêm trước đó bằng mã sau

define['WP_DEBUG', true];
define['WP_DEBUG_DISPLAY', true];

Mã này sẽ cho phép WordPress bắt đầu hiển thị lại các lỗi, cảnh báo và thông báo PHP

Chúng tôi hy vọng bài viết này đã giúp bạn tìm hiểu cách tắt lỗi php trong WordPress. Bạn cũng có thể muốn xem danh sách các lỗi WordPress phổ biến nhất của chúng tôi và cách khắc phục chúng

Nếu bạn thích bài viết này, vui lòng đăng ký Kênh YouTube của chúng tôi để xem các video hướng dẫn về WordPress. Bạn cũng có thể tìm thấy chúng tôi trên Twitter và Facebook

Trong PHP, Thông báo là các biến không xác định được chỉ định trong dự án PHP trên một tập hợp các dòng hoặc các dòng cụ thể. Nó thường không ảnh hưởng hoặc phá vỡ chức năng của mã được viết. Khi thông báo PHP phát hiện lỗi, nó sẽ hiển thị như thế này

Ẩn tất cả các thông báo cảnh báo về cơ bản giống như bật nhạc trong ô tô của bạn để bạn không thể nghe thấy tiếng ồn đáng lo ngại mà động cơ của bạn đang tạo ra

Ẩn các cảnh báo PHP bằng hàm error_reporting

Hàm error_reporting cho phép chúng ta báo cho PHP biết lỗi nào cần báo cáo

Ví dụ: nếu chúng tôi muốn hiển thị tất cả các thông báo lỗi ngoại trừ cảnh báo, chúng tôi có thể sử dụng dòng mã sau

//Report all errors except warnings.
error_reporting[E_ALL ^ E_WARNING];

Thông thường, hàm error_reporting nên được đặt ở đầu mã của bạn. Điều này là do chức năng chỉ có thể kiểm soát các lỗi xảy ra trong mã bên dưới nó

Tôi có thể ẩn các thông báo PHP không?

Nếu bạn cũng muốn ẩn các thông báo, thì bạn có thể đặt mức sau trong hàm error_reporting

//Only report fatal errors and parse errors.
error_reporting[E_ERROR | E_PARSE];

//This will usually create a division by 0 
//warning message.
echo 1 / 0;

//This will usually create an array to string
//notice message.
echo array[];

Trong đoạn mã trên, chúng tôi đã nói với PHP rằng nó chỉ nên báo cáo lỗi nghiêm trọng [E_ERROR] và lỗi phân tích cú pháp [E_PARSE]

Sau đó, chúng tôi đã tạo hai dòng mã

  • Chúng tôi chia 1 cho 0, điều này thường dẫn đến “Cảnh báo. Thông điệp chia cho số 0
  • Sau đó, chúng tôi đã cố gắng lặp lại một mảng. Trong trường hợp bình thường, điều này sẽ gây ra thông báo sau. "Lưu ý. Chuyển đổi mảng thành chuỗi”

Nếu chạy ví dụ trên, bạn sẽ thấy trang không hiển thị bất kỳ thông báo hay cảnh báo nào. Hơn nữa, nếu bạn kiểm tra nhật ký lỗi PHP, bạn sẽ thấy rằng chúng cũng chưa được ghi lại

Ngừng hiển thị thông báo cảnh báo

Nếu bạn chỉ muốn dừng hiển thị các thông báo cảnh báo, nhưng không ngăn chúng được ghi lại, thì bạn có thể sử dụng đoạn mã sau

//Tell PHP to log errors
ini_set['log_errors', 'On'];
//Tell PHP to not display errors
ini_set['display_errors', 'Off'];
//Set error_reporting to E_ALL
ini_set['error_reporting', E_ALL ];

Ở đây, chúng tôi đang sử dụng hàm ini_set của PHP để tự động sửa đổi cài đặt trong tệp php của chúng tôi. tập tin ini

  1. Chúng tôi đặt log_errors thành Bật , có nghĩa là PHP sẽ ghi các cảnh báo vào nhật ký lỗi của chúng tôi.
  2. Chúng tôi đặt display_errors thành Tắt . Kết quả là PHP sẽ không xuất lỗi ra màn hình.
  3. Cuối cùng, chúng tôi đặt error_reporting thành E_ALL

Ghi chú. Nếu bạn có thể truy cập php của bạn. ini, thì có lẽ bạn nên chỉnh sửa trực tiếp các giá trị này thay vì thay đổi chúng một cách nhanh chóng

Sử dụng ký tự @ để chặn lỗi

Trong một số trường hợp, bạn có thể không kiểm soát được một số cảnh báo

Ví dụ: yêu cầu GET tới API bên ngoài có thể không thành công, dẫn đến cảnh báo "không thể mở luồng". Để ngăn điều này xảy ra, chúng ta có thể sử dụng ký tự @ như vậy

//API URL
$url = '//example.com/api';

//Attempt to get contents of that URL
$result  = @file_get_contents[$url];

Như bạn có thể thấy, chúng tôi đã đặt ký tự @ [AT] bên cạnh lệnh gọi hàm của chúng tôi. Điều này có nghĩa là nếu file_get_contents bị lỗi, nó sẽ không đưa ra thông báo E_WARNING

Điều này hoạt động vì ký tự @ là toán tử kiểm soát lỗi yêu cầu PHP bỏ qua mọi lỗi

Lưu ý rằng nên sử dụng hạn chế lỗi. Lạm dụng toán tử điều khiển này có thể dẫn đến các sự cố khó gỡ lỗi

Tại sao tôi không nên chặn tất cả các thông báo cảnh báo?

Thông báo E_WARNING là một lỗi không ngăn phần còn lại của tập lệnh PHP của bạn thực thi. Mặc dù nó không dừng tập lệnh nhưng nó vẫn bị lỗi. Điều đó có nghĩa là một cái gì đó trong mã của bạn không hoạt động theo cách mà nó được cho là đang hoạt động

Bạn nên luôn cố gắng giải quyết vấn đề thay vì che giấu nó. Nếu không, nó có thể dẫn đến các lỗi khác trong tương lai

Nếu bạn giấu nhẹm những thông báo cảnh báo này, bạn sẽ hạn chế khả năng phát hiện các vấn đề nghiêm trọng trong ứng dụng của mình

Ví dụ: điều gì sẽ xảy ra nếu cửa hàng trực tuyến của bạn gặp lỗi "chia cho một" khiến một số người dùng không thể thêm nhiều mặt hàng vào giỏ hàng của họ? . Hoặc có thể nó xảy ra sau khi họ giảm số lượng một mặt hàng trong giỏ hàng của họ

Dù bằng cách nào, điều gì đó tồi tệ đang xảy ra và bạn không biết về nó

Bạn không thể dựa vào người dùng cuối để báo cáo sự cố. Nhiều người trong số họ sẽ nghĩ rằng họ đang sử dụng trang web không đúng cách hoặc đơn giản là họ sẽ quên nó đi và tiếp tục. Người dùng Internet mất kiên nhẫn. Họ thường không dành thời gian để điền vào biểu mẫu liên hệ hoặc đính kèm ảnh chụp màn hình

Kết quả là, cách tiếp cận lười biếng này trong việc “nuốt chửng” tất cả các thông báo cảnh báo đã khiến cửa hàng trực tuyến của bạn bị giảm doanh thu

Làm cách nào để tắt báo cáo lỗi PHP?

Khởi động lại tất cả các dịch vụ của máy chủ web. Bây giờ nó sẽ hiển thị tất cả các lỗi của tập lệnh PHP cho người dùng cuối. Để tắt báo cáo lỗi, hãy đặt tham số display_error thành tắt . Tham số tắt có nghĩa là nó sẽ không hiển thị bất kỳ lỗi nào cho người dùng.

Ký tự nào có thể được sử dụng để chặn lỗi trong PHP?

PHP hỗ trợ một toán tử kiểm soát lỗi. dấu tại dấu [ @ ] . Khi được thêm vào trước một biểu thức trong PHP, mọi lỗi chẩn đoán có thể do biểu thức đó tạo ra sẽ bị loại bỏ.

Làm cách nào để tránh lỗi trong PHP?

Để tránh các sự cố như thế này, bạn có thể đặt max_execution_time=1024M để tránh tạo dữ liệu tốc độ chậm và để ẩn lỗi có thể xảy ra error_reporting=0 trên php. tập tin ini. .
Thanks. .
@Kaii btw. nếu tôi làm error_reporting[0]; .
@nyarlathotep cảm ơn

Toán tử triệt tiêu lỗi trong PHP là gì?

Trong PHP ký hiệu @ được định nghĩa là Toán tử kiểm soát lỗi. Khi nó được thêm tiền tố vào bất kỳ biểu thức nào, bất kỳ lỗi nào mà trình phân tích cú pháp PHP gặp phải trong khi thực thi nó sẽ bị chặn và biểu thức sẽ bị bỏ qua.

Chủ Đề