Hướng dẫn what are the causes a php error was encountered? - nguyên nhân gây ra lỗi php là gì?
CodeIgniter ném lỗi đã gặp lỗi của PHP khi có một vấn đề trong các mã được sử dụng trong Trang web. Show
Tại Bobcares, chúng tôi đã thấy một số nguyên nhân gây ra lỗi này trong khi khắc phục sự cố Codeigniter như một phần của dịch vụ quản lý máy chủ của chúng tôi cho người dùng Codeigniter, máy chủ web và nhà cung cấp dịch vụ trực tuyến. Hôm nay, chúng tôi sẽ xem xét các nguyên nhân hàng đầu cho lỗi này và xem cách khắc phục chúng. Điều gì gây ra lỗi Codeigniter đã gặp phải lỗi PHPLỗi này có thể xảy ra do nhiều lý do khác nhau bao gồm các vấn đề trong mã được sử dụng, bất kỳ vấn đề nào trong máy chủ cơ sở dữ liệu, v.v. Thông thường, lỗi sẽ ở định dạng dưới đây: Một lỗi PHP đã gặp phải mức độ nghiêm trọng: Điều này chỉ định mức độ nghiêm trọng của lỗi. Điều này có thể được thông báo hoặc cảnh báo. Thông báo: Nó hiển thị vấn đề nào đã gây ra lỗi này xảy ra. Tên tệp: Nó đề cập đến tệp chính xác do lỗi xảy ra. Số dòng: Ở đây, nó đề cập đến dòng mã gây ra lỗi. Chẳng hạn, lỗi xuất hiện như dưới đây. Cách chúng tôi sửa lỗi Codeigniter đã gặp phải lỗi PHPGần đây, một trong những khách hàng của chúng tôi đã tiếp cận chúng tôi với thông báo lỗi Codeigniter tương tự này. Bây giờ, hãy xem cách các kỹ sư hỗ trợ của chúng tôi giúp khách hàng của chúng tôi giải quyết lỗi này. Ban đầu, chúng tôi đã kiểm tra tệp được đề cập trong thông báo lỗi và xem xét các mã. Sau đó, chúng ta có thể thấy rằng mẫu trình xây dựng truy vấn đã được thêm không chính xác. Đó là trong mô hình dưới đây.
Sau đó chúng tôi đã cập nhật mẫu Truy vấn xây dựng như dưới đây.
Điều này cuối cùng, đã sửa lỗi. Tuy nhiên, giải pháp khác nhau theo thông báo lỗi được đề cập trong lỗi. Hãy để thảo luận về một trường hợp khác mà khách hàng đưa ra thông báo lỗi dưới đây.
Ở đây chúng tôi đã thêm một biểu tượng $ ở đầu tên biến. Điều này đã khắc phục vấn đề. Hầu hết các khách hàng quên thêm một biểu tượng $ ở đầu tên biến trong khi sử dụng hằng số không xác định. [Cần bất kỳ hỗ trợ để sửa lỗi Codeigniter? - Chúng tôi sẽ giúp bạn] Sự kết luậnNói tóm lại, lỗi Codeigniter này có thể xảy ra khi có vấn đề trong mã được sử dụng trong Trang web. Hôm nay, chúng tôi đã thấy cách các kỹ sư hỗ trợ của chúng tôi khắc phục lỗi này cho khách hàng của chúng tôi. Đừng bao giờ mất khách hàng với tốc độ máy chủ kém! Hãy để chúng tôi giúp bạn.Các chuyên gia máy chủ của chúng tôi sẽ giám sát và duy trì máy chủ của bạn 24/7 để nó vẫn nhanh như chớp và an toàn. BẮT ĐẦU var google_conversion_label = "owoncmyg5neq0ad71qm"; Xử lý lỗi trong PHP rất đơn giản. Một thông báo lỗi với tên tệp, số dòng và thông báo mô tả lỗi được gửi đến trình duyệt. Ghi nhật ký lỗi Theo mặc định, PHP gửi nhật ký lỗi đến hệ thống ghi nhật ký của máy chủ hoặc tệp, tùy thuộc vào cách cấu hình ERROR_LOG được đặt trong tệp php.ini. Bằng cách sử dụng chức năng error_log(), bạn có thể gửi nhật ký lỗi đến một tệp được chỉ định hoặc đích từ xa.Gửi thông báo lỗi cho chính mình bằng e-mail có thể là một cách tốt để thông báo về các lỗi cụ thể. Gửi thông báo lỗi bằng e-mail Trong ví dụ dưới đây, chúng tôi sẽ gửi e-mail với thông báo lỗi và kết thúc tập lệnh, nếu xảy ra lỗi cụ thể:
Điều này không nên được sử dụng với tất cả các lỗi. Các lỗi thường xuyên phải được ghi vào máy chủ bằng hệ thống ghi nhật ký PHP mặc định.Loại lỗi nào có thể xảy ra trong PHP? Nếu tệp không tồn tại, bạn có thể gặp lỗi như thế này: CẢNH BÁO: fopen (mytestfile.txt) [function.fopen]: Không thể mở luồng: Không có tệp hoặc thư mục đó trong C: \ WebFolder \ test.php trên dòng 2: fopen(mytestfile.txt) [function.fopen]: failed to open stream: Để ngăn người dùng nhận được thông báo lỗi như ở trên, chúng tôi kiểm tra xem tệp có tồn tại trước khi chúng tôi cố gắng truy cập nó không: Thí dụHãy tự mình thử » Hãy tự mình thử » Bây giờ nếu tệp không tồn tại, bạn sẽ gặp lỗi như thế này: Lỗi: Tệp không tồn tại. Mã trên hiệu quả hơn mã trước đó, vì nó sử dụng cơ chế xử lý lỗi đơn giản để dừng tập lệnh sau lỗi. Tuy nhiên, chỉ cần dừng kịch bản không phải lúc nào cũng là cách đúng đắn. Chúng ta hãy xem các chức năng PHP thay thế để xử lý lỗi. Tạo trình xử lý lỗi tùy chỉnhTạo một xử lý lỗi tùy chỉnh khá đơn giản. Chúng tôi chỉ cần tạo một chức năng đặc biệt có thể được gọi khi xảy ra lỗi trong PHP. Hàm này phải có khả năng xử lý tối thiểu hai tham số (mức độ lỗi và thông báo lỗi) nhưng có thể chấp nhận tối đa năm tham số (tùy chọn: tệp, số dòng và bối cảnh lỗi): Cú pháp ERROR_FUNCTION (ERROR_LEVEL, ERROR_MESSAGE, ERROR_FILE, ERROR_LINE, ERROR_CONTEXT)
Mức độ báo cáo lỗiCác cấp báo cáo lỗi này là các loại lỗi khác nhau mà trình xử lý lỗi do người dùng xác định có thể được sử dụng cho:
E_warning Một lỗi thời gian chạy không gây tử vong. Việc thực thi tập lệnh không bị dừng E_notice Một thông báo thời gian chạy. Tập lệnh đã tìm thấy một cái gì đó có thể là một lỗi, nhưng cũng có thể xảy ra khi chạy tập lệnh bình thường E_user_errorMột lỗi do người dùng tạo ra. Điều này giống như một e_error, ngoại trừ nó được tạo bởi tập lệnh PHP bằng cách sử dụng chức năng Trigger_error () E_user_warning Một cảnh báo không phải là người dùng do người sử dụng tạo ra. Điều này giống như một e_warning, ngoại trừ nó được tạo bởi tập lệnh PHP bằng cách sử dụng chức năng Trigger_error () E_user_notice Thí dụMột thông báo do người dùng tạo. Điều này giống như một e_notice, ngoại trừ nó được tạo bởi tập lệnh PHP bằng cách sử dụng chức năng Trigger_error () E_strict Không hoàn toàn là một lỗi. E_all Tất cả các lỗi và cảnh báo (e_strict trở thành một phần của e_all trong PHP 5.4) Bây giờ hãy tạo một chức năng để xử lý các lỗi: [8] Undefined variable: test function CustomError ($ errno, $ errstr) {& nbsp; & nbsp; echo "lỗi: [$ errno] $ errstr"; & nbsp; & nbsp; echo "kết thúc tập lệnh"; & nbsp; & nbsp; die (); }Mã trên là một chức năng xử lý lỗi đơn giản. Khi nó được kích hoạt, nó sẽ nhận được mức lỗi và thông báo lỗi. Sau đó, nó xuất ra mức lỗi và thông báo và chấm dứt tập lệnh. Thí dụBây giờ chúng tôi đã tạo ra một chức năng xử lý lỗi, chúng tôi cần quyết định khi nào nó nên được kích hoạt. Đặt trình xử lý lỗi Tất cả các lỗi và cảnh báo (e_strict trở thành một phần của e_all trong PHP 5.4) Bây giờ hãy tạo một chức năng để xử lý các lỗi:: Value must be 1 or below function CustomError ($ errno, $ errstr) {& nbsp; & nbsp; echo "lỗi: [$ errno] $ errstr"; & nbsp; & nbsp; echo "kết thúc tập lệnh"; & nbsp; & nbsp; die (); } Các loại lỗi có thể có:
Thí dụTrong ví dụ này, một biến số e_user_warning xảy ra nếu biến "kiểm tra" lớn hơn "1". Nếu xảy ra E_USER_WARNING, chúng tôi sẽ sử dụng trình xử lý lỗi tùy chỉnh của chúng tôi và kết thúc tập lệnh: //error handler function // Đặt lỗi Handler set_error_handler ("CustomError", e_user_warning); // lỗi kích hoạt $ test = 2; if ($ test> = 1) & nbsp; {& nbsp; & nbsp; trigger_error ("giá trị phải là 1 hoặc thấp hơn", e_user_warning); }?> Đầu ra của mã trên phải là một cái gì đó như thế này: Lỗi: [512] Giá trị phải là 1 hoặc dưới tập lệnh kết thúc [512] Value must be 1 or below Bây giờ chúng tôi đã học cách tạo ra các lỗi của riêng mình và cách kích hoạt chúng, hãy xem xét việc ghi nhật ký lỗi. Ghi nhật ký lỗiTheo mặc định, PHP gửi nhật ký lỗi đến hệ thống ghi nhật ký của máy chủ hoặc tệp, tùy thuộc vào cách cấu hình ERROR_LOG được đặt trong tệp php.ini. Bằng cách sử dụng chức năng Gửi thông báo lỗi cho chính mình bằng e-mail có thể là một cách tốt để thông báo về các lỗi cụ thể. Gửi thông báo lỗi bằng e-mailTrong ví dụ dưới đây, chúng tôi sẽ gửi e-mail với thông báo lỗi và kết thúc tập lệnh, nếu xảy ra lỗi cụ thể: // Đặt lỗi Handler set_error_handler ("CustomError", e_user_warning); // Đặt lỗi Handler set_error_handler ("CustomError", e_user_warning); // lỗi kích hoạt $ test = 2; if ($ test> = 1) & nbsp; {& nbsp; & nbsp; trigger_error ("giá trị phải là 1 hoặc thấp hơn", e_user_warning); }?> Đầu ra của mã trên phải là một cái gì đó như thế này: Lỗi: [512] Giá trị phải là 1 hoặc dưới tập lệnh kết thúc [512] Value must be 1 or below Bây giờ chúng tôi đã học cách tạo ra các lỗi của riêng mình và cách kích hoạt chúng, hãy xem xét việc ghi nhật ký lỗi. Ghi nhật ký lỗi Theo mặc định, PHP gửi nhật ký lỗi đến hệ thống ghi nhật ký của máy chủ hoặc tệp, tùy thuộc vào cách cấu hình ERROR_LOG được đặt trong tệp php.ini. Bằng cách sử dụng chức năng Loại lỗi nào có thể xảy ra trong PHP?Trong PHP, chủ yếu là bốn loại lỗi được xem xét: lỗi cú pháp hoặc lỗi phân tích cú pháp.Lỗi nghiêm trọng.Lỗi cảnh báo.
Lỗi PHP đã gặp phải cảnh báo nghiêm trọng là gì?Một Lỗi PHP đã gặp phải.Mức độ nghiêm trọng: Điều này chỉ định mức độ nghiêm trọng của lỗi.Điều này có thể được thông báo hoặc cảnh báo.Thông báo: Nó hiển thị vấn đề nào đã gây ra lỗi này xảy ra.Tên tệp: Nó đề cập đến tệp chính xác do lỗi xảy ra.
Những lỗi nào được kích hoạt bởi động cơ PHP?Xử lý lỗi PHP.. Máy chủ web có thể hết dung lượng đĩa .. Người dùng có thể đã nhập một giá trị không hợp lệ trong trường biểu mẫu .. Tệp hoặc bản ghi cơ sở dữ liệu mà bạn đang cố gắng truy cập có thể không tồn tại .. Ứng dụng có thể không có quyền ghi vào tệp trên đĩa .. Lỗi PHP ở đâu?Vị trí của tệp nhật ký lỗi có thể được đặt thủ công trong PHP.Tệp INI.Trên máy chủ Windows, trong IIS, nó có thể là một cái gì đó giống như "'error_log = c: \ log_files \ php_errors.log'" Trong Linux, nó có thể là giá trị của "'/var/log/php_errors.C:\log_files\php_errors. log'" in Linux it may be a value of "'/var/log/php_errors. |