866 Shares 6368 views

Wyjście błędu w PHP

Niezależnie od troski i uwagi nie był programistą WWW, podczas gdy podlega ona błędy i nieścisłości. W efekcie może to spowodować nieprawidłowe działanie witryny lub usługi. Do debugowania podczas realizacji projektu możliwe jest to wyjście błędów w PHP.


Jak to działa?

PHP jest zdecydowanie reagować na konkretnym kodzie skryptu. W niektórych przypadkach – podjąć odpowiednie działania, w innych – wyświetla błąd. Mechanizm ten pomaga programiście w momencie wykonania sekcji kodu w celu skorygowania wady niezwłocznie.

Jednak wyjście błędów w PHP nie zawsze jest konieczne. Po opracowaniu projektu została zakończona, funkcja ta jest wyłączona w celu uniknięcia przerwy się lub nieautoryzowanego dostępu.

regulacja

W całej konfiguracji interpretera PHP odpowiedzialny jest plik php.ini. To error_reporting dyrektywa, która jest precyzyjnie określa wyjście błędu w PHP. Jednak, mimo że zawiera obsługę wyjątków, do wyświetlania ich w oknie przeglądarki odpowiedzialnych display_errors. Jeśli jest wyłączona, system wyświetli komunikat o błędzie zamiast pustej strony.

wyjątkiem klasyfikacji

Wyjście błędu w PHP można podzielić na kilka kategorii:

  • Błędy, które powodują skrypt przestaje działać. Tzw śmiertelne. Należą E_ERROR, E_COMPILE_ERROR;

  • Błędy, które mogą być skorygowane. Ich wartości dla dyrektywy error_reporting może być: E_WARNING, E_NOTICE i inni.

Warto przyjrzeć się bliżej każdego typu i opisać jego funkcjonalność.

  • E_ERROR. Zazwyczaj ten typ odnosi się do takich błędów, które nie mogą być szybko wyeliminowane lub kontynuować skrypt. Może to obejmować problemy alokacji pamięci;

  • E_WARNING. Kod będzie nadal działać, ale pojawia się ostrzeżenie, że jest jakiś błąd, kod jest wskazany w komunikacie. nie są krytyczne;

  • E_NOTICE. Powiadomienia, które pokazują, że istnieje coś, co może być przyczyną błędu. Nie są one również zasadnicze znaczenie dla realizacji kodeksu;

  • E_USER_ERROR. Błędy generowane przez użytkownika;

  • E_ALL. Obejmuje to wszystkie rodzaje błędów. Zazwyczaj ta opcja jest domyślnie włączona po zainstalowaniu interpretera.

Jak włączyć wyjście błędu w PHP

Technika stosowana w mechanizmie błędów PHP może się różnić w zależności od tego, gdzie stosowany jest kod – w organizacji lub na komputerze lokalnym. W drugim przypadku, deweloper może dostosować swój serwer i wyświetla jak chce – a mianowicie, aby zmienić konfigurację w pliku php.ini. Aby przytoczyć dwa dyrektyw – display_errors i error_reporting do następującej postaci:

display_errors na

error_reporting E_ALL

Polecenia te umożliwiają wyświetlanie wszystkich komunikatów o błędach bezpośrednio w oknie przeglądarki.

Jeśli rozwój odbywa się na serwerze wirtualnym, często funkcję wyświetlania błędu, wyłączyć ze względów bezpieczeństwa. Dlatego potrzeba, aby włączyć go do używania Apache plik ustawień serwera .htaccess. Zazwyczaj jest to w katalogu głównym witryny. Trzeba dodać kilka linii w dowolnym edytorze tekstu:

display_errors php_flag na

php_value raportowanie błędów -1

Również wyświetlać błędy mogą być bezpośrednio z kodu za pomocą ini_set funkcji (). Należy jednak mieć na uwadze, że po opracowaniu w miejscu jego użytkowania może powodować problemy z bezpieczeństwem.

złożenie

PHP pozwala na zapisanie wszystkich błędów, które pojawiają się w określonym miejscu na dysku twardym. Aby umożliwić PHP błąd w pliku wyjściowego można używać na trzy sposoby:

  1. Edytować plik php.ini. Tutaj konieczne jest zdefiniowanie dwóch linii. Po pierwsze – log_errors = On, który w rzeczywistości aktywuje zdolność do wyjścia. Po drugie – error_log = ścieżka / do pożądanej / pliku.

  2. Zmień htaccess. Możliwe jest także, aby dodać dwie linie. log_errors php_value «na» i php_value error_log ścieżki / pliku.

  3. Użyj prawidłowego funkcjonowania ini_set kodu lokalizacji.

wniosek

Wyjście błędu w PHP – podstawowe narzędzie do debugowania kodu. Ale może również utworzyć potencjalnie narażoną powierzchnię. W związku z tym, należy użyć tego mechanizmu trzeba starannie i dokładnie. Po witryna lub usługa przeszła przez wszystkie etapy testów, trzeba zadbać o to, aby nie pokazać błąd, przez który atakujący może uzyskać dostęp do poufnych danych.