Viser php-fejl. Viser fejl på forskellige niveauer i PHP


Lad os finde ud af, hvordan du aktiverer/deaktiverer visningen af ​​fejl på webstedet. Gennem adminpanelet og gennem htaccess-filen.

Fejlvisning (Bemærkning, Advarsel, Fatal fejl) er vigtigt og påkrævet funktion, det er godt hun findes! Ellers ville webmastere bruge måneder på manuelt at søge efter fejl i koden på deres websted.

Hvordan aktiverer man fejlvisning fra Joomla 3 admin panel?

For at gøre dette skal du i Joomla admin panel gå til "System - Generelle indstillinger".

Gå til fanen "Server", der vil du se indstillingen "Fejlmeddelelser". Vælg tilstanden "Maksimum".

Gemme.

Efter dette vil eventuelle fejlmeddelelser blive vist på webstedets sider. Dette er nyttigt, hvis du ser et sted på webstedet Hvid skærm.

Efter at have aktiveret fejlmeddelelser på en hvid skærm, vil du se fejltypen og dens beskrivelse.
Ved hjælp af denne beskrivelse kan du finde en løsning i en Yandex- eller Google-søgning.

Aktiverer php-fejlvisning via configuration.php

Hvis du ikke har adgang til administrationspanelet, eller det ikke virker, kan du aktivere fejlvisning gennem filen configuration.php, som er placeret i rodmappen på dit websted.

Den indeholder et direktiv

public $error_reporting = "standard";

For at aktivere fejlvisning skal du ændre standard til maksimum

Sådan aktiverer du fejlvisning via .htaccess

Hvis du ikke har Joomla, men dit eget script, eller af en eller anden grund ikke kan aktivere fejlmeddelelser på de første to måder, så kan dette gøres gennem .htaccess-filen, som også ligger i rodmappen på dit websted.

Åbn .htaccess - vær opmærksom på prikken foran. Hvis du ikke har sådan en fil, så opret den.
I CMS-systemer kaldes det normalt htaccess.txt og kan blot omdøbes til .htaccess

Helt øverst tilføj linjen:

php_flag display_errors på

Og linjen:

php_flag display_errors fra

slukker for fejlvisning.

Hvilken slags php-fejlmeddelelser er der?

De mest almindelige er:

Varsel- meddelelse om mindre fejl i koden. Typisk forbliver webstedets funktionalitet intakt.

Disse meddelelser vises bare i overskriften.

Advarsel- advarsel om mere alvorlige fejl. Nogle gange, med en sådan advarsel, forbliver webstedets funktionalitet også, nogle gange en hvid skærm.

Når man arbejder med en hjemmeside, er enhver udvikler stødt på en situation, hvor man ved at aktivere et modul, tilføje sin egen kode eller lave andre ændringer på hjemmesiden en såkaldt HVID DØDSSKÆRM(white screen of death), som normalt er forårsaget af en fejl PHP. Udviklerens første handling er naturligvis at rulle de ændringer tilbage, der førte til denne fejl. Men fejlen skal rettes, hvilket betyder, at vi skal se på, hvad der præcist får den til at opstå.

Det er godt, hvis udvikleren har mulighed for at se på Apache-loggene. Men her opstår vanskeligheder: Ikke alle hoster vedligeholder dem, og ikke alle programmører har adgang til dem. I sidste ende bliver du nødt til at gå til serveren for at se dem. Men alle programmører er dovne, hvilket betyder, at vi skal lede efter en enklere løsning. Og denne løsning er at vise fejl direkte på skærmen.

Jeg tager ikke hensyn til siden i Drupal, der giver dig mulighed for at vise fejl på skærmen (admin/indstillinger/fejlrapportering), fordi... Det vil ikke redde dig fra en hvid skærm. Det viser fejl, der bryder moduler, ikke webstedet som helhed. De der. hvis du glemmer at sætte det (f.eks.) isset for en variabel, der muligvis ikke er defineret, vil der blive vist en fejl på skærmen. Men hvis du glemmer at sætte et semikolon efter at have udført operationen, vil Drupal ikke længere vise denne fejl, og du vil se en hvid skærm.

Der er flere måder at aktivere fejloutput på.

Metode 1: Aktivering af fejlvisning via php.ini

Hvis du har adgang (nå, hvad nu hvis) til serveren, så konfigurationsfil php.ini find parameteren fejlrapportering og sæt dens værdi til E_ALLE.

Error_reporting = E_ALL

Metode 2. Aktivering af fejlvisning via .htaccess

I roden af ​​Drupal er der en .htaccess-fil, der regulerer sideindlæsningsprocesser. For at aktivere meddelelser skal du åbne den og tilføje følgende to linjer:

Php_flag display_errors on php_flag display_startup_errors on

Metode 3. Aktivering af fejlvisning via index.php

Lad os trykke på filerne i Drupal-roden igen, men denne gang index.php. Her, for at vise meddelelser, skal du tilføje error_reporting(7) før linjen med bootstrap.ini-forbindelsen:

Fejlrapportering(7); require_once "./includes/bootstrap.inc" ;

Metode 4: Aktivering af fejlvisning via settings.php

Jeg vil med det samme sige, at denne metode kun virker for Drupal 7. Der er en settings.php-fil i mappen sites/default/. Åbn den og tilføj disse linjer:

Fejlrapportering(-1); $conf [ "error_level" ] = 2 ; ini_set ("display_errors" , TRUE ); ini_set ("display_startup_errors" , TRUE );

Når debugging scripts på PHP almindelig Det er et spørgsmål om at få en "hvid skærm" i browseren. Hvilket i de fleste tilfælde indikerer et stop PHP udførelse kode på grund af en fejl. PHP-fortolkeren giver dig mulighed for at output officielle oplysninger om fejl på skærmen, hvilket i høj grad letter fejlretningen. Men som standard (i de fleste tilfælde) er denne adfærd deaktiveret af sikkerhedsmæssige årsager, det vil sige, at PHP-fejlmeddelelser ikke vises på skærmen.

I denne artikel vil jeg fortælle dig, hvordan du får PHP til at vise fejlmeddelelser på skærmen i et browservindue. Instruktionerne er gyldige for det tilfælde, hvor du bruger Apache-webserveren, og hvis PHP til dit websted er tilsluttet som et Apache-modul.

Visning af fejl på skærmen bør kun være aktiveret ved fejlretning af webstedet. Tilstedeværelsen af ​​en sådan kode kan have en negativ indvirkning på webapplikationens sikkerhed.

Aktiverer visning af PHP-fejl på skærmen ved hjælp af .htaccess-filen

Det er meget bekvem måde til fejlretning af PHP-kode. Virker i næsten alle tilfælde. I mappen med scriptet på webstedet placerer vi .htaccess-filen med følgende indhold:

Php_flag display_errors on php_flag display_startup_errors on php_flag error_reporting E_ALL

  • display_errors- inkluderer en mulighed for at vise fejl på skærmen sammen med resten af ​​koden.
  • display_startup_errors- aktiverer muligheden for at vise fejl, der opstår, når PHP starter, når display_errors-direktivet endnu ikke virker.
  • fejlrapportering- angiver, hvilke fejl der vises efter signifikansniveau. Når direktivet er sat til E_ALLE alle fejl vises.

Aktiver PHP-fejloutput til skærm i PHP-filkode

Denne metode er praktisk, fordi du styrer visningen af ​​fejl på skærmen i selve PHP-scriptet. Parametre indstillet ved hjælp af funktionen ini_set() har højere prioritet og tilsidesætter direktiver php.ini Og .htaccess. Placer følgende kode i begyndelsen af ​​PHP-filen:

Ini_set("display_errors", 1); ini_set("display_startup_errors", 1); ini_set("fejlrapportering", E_ALL);

Aktiver PHP-fejl til at blive vist på skærmen ved hjælp af php.ini-filen

Denne metode er relevant, når du er serveradministrator. I fil php.ini redigere følgende linjer(tilføj om nødvendigt):

Display_errors = On display_startup_errors = On error_reporting = E_ALL

Den bedste måde at vise PHP-fejl på skærmen

Efter min mening til den gennemsnitlige bruger mest praktisk at bruge .htaccess, især hvis du har mere end én PHP-fil. Metode nummer 2 er praktisk til fejlretning af en php-fil, for ikke at påvirke fejloutputniveauet for andre php scripts. Mulighed med php.ini Kun egnet til serveradministratorer, men dens virkning gælder for alle websteder på denne server.

Anerkendelser

Følgende kilder blev brugt, da denne artikel blev skrevet.

Uanset hvor omhyggelig og opmærksom en webprogrammør er, er fejl og unøjagtigheder mulige under hans arbejde. Som følge heraf kan dette resultere i websteds- eller servicefejl. Til fejlfinding under projektudvikling er det muligt at aktivere fejloutput i PHP.

Hvordan det virker?

PHP reagerer bestemt på denne eller hin script-kode. I nogle tilfælde - ved at udføre nødvendig handling, i andre viser den en fejl. Denne mekanisme hjælper udvikleren med hurtigt at rette fejl på tidspunktet for implementering af en kodesektion.

Fejloutput i PHP er dog ikke altid nødvendigt. Efter at udviklingen af ​​projektet er afsluttet, er denne funktion deaktiveret for at undgå hacking eller uautoriseret adgang.

Indstillinger

For hele konfigurationen PHP tolk php.ini-filen er ansvarlig. Den indeholder fejlrapporteringsdirektivet, som bestemmer outputtet af fejl i PHP. Men selvom det inkluderer undtagelseshåndtering, er display_errors ansvarlig for at vise dem i browservinduet. Hvis det er deaktiveret, vil systemet vise en tom side i stedet for en fejl.

Klassificering af undtagelser

Fejloutput i PHP kan opdeles i flere kategorier:

    fejl, der vil få scriptet til at stoppe med at køre. De såkaldt fatale. Disse omfatter E_ERROR, E_COMPILE_ERROR;

    fejl, der kan rettes. Deres værdier for fejlrapporteringsdirektivet kan være: E_WARNING, E_NOTICE og andre.

Det er værd at overveje hver type mere detaljeret og beskrive dens funktionalitet.

    E_FEJL. Typisk refererer denne type til fejl, der ikke kan løses hurtigt, eller scriptet ikke kan fortsættes. Disse kan omfatte problemer med hukommelsesallokering;

    E_ADVARSEL. Koden vil fortsætte med at virke, men en advarsel vil blive vist, der indikerer, at der er en form for fejl, hvis kode er angivet i meddelelsen. Ikke kritisk;

    E_BEMÆRK. Meddelelser, der indikerer, at der er sket noget, der kan forårsage en fejl. Heller ikke kritisk for kodeudførelse;

    E_USER_ERROR. Fejl genereret af brugeren selv;

    E_ALLE. Dette omfatter alle typer fejl. Som regel, denne mulighed aktiveret som standard ved installation af tolken.

Sådan aktiverer du fejloutput i PHP

Metoden til at bruge fejlmekanismer i PHP kan variere afhængigt af hvor koden bruges - på hosting eller på lokal computer. I det andet tilfælde kan udvikleren konfigurere sin server og vise som han vil, nemlig ændre konfigurationen i php.ini-filen. Det er nok at transformere to direktiver - display_errors og error_reporting til følgende form:

display_errors tændt

fejlrapportering E_ALL

Disse kommandoer giver dig mulighed for at vise alle fejlmeddelelser direkte i browservinduet.

Hvis udviklingen gennemføres på virtuel hosting, så er fejlvisningsfunktionen oftest deaktiveret der af sikkerhedsmæssige årsager. Derfor skal du bruge serverindstillingsfilen for at aktivere den Apache htaccess. Det er normalt placeret ved roden af ​​stedet. Du skal tilføje et par linjer til det ved hjælp af en hvilken som helst teksteditor:

php_flag display_errors på

php_value fejlrapportering -1

Du kan også vise fejl direkte fra koden ved hjælp af ini_set()-funktionen. Det er dog værd at overveje, at efter at udviklingen af ​​webstedet er afsluttet, kan brugen af ​​det forårsage sikkerhedsproblemer.

Skriv til fil

PHP giver dig mulighed for at gemme alle fejl, der opstår i bestemt sted på din harddisk. For at inkludere PHP-fejloutput i en fil kan du bruge tre metoder:

    rediger filen php.ini. Her skal du definere to linjer. Den første er log_errors = On, som faktisk aktiverer output-indstillingen. Den anden er error_log = sti/til den ønskede/fil.

    Skift htaccess. Du kan også tilføje to linjer til det. php_value log_errors "on" og php_value error_log sti/til fil.

    Brug ini_set-funktionen på det ønskede sted i koden.

Konklusion

Fejludgang i PHP - nødvendigt værktøj i kodefejlfinding. Men det kan også skabe potentielt udsatte områder. Derfor skal du bruge denne mekanisme omhyggeligt og omhyggeligt. Når et websted eller en tjeneste har bestået alle teststadier, skal du sikre dig, at den ikke viser fejl, der kan bruges af en hacker til at få adgang til vigtige data.

I dag vil vi se på flere metoder til at aktivere fejloutput i PHP.

Enhver, selv den mest erfarne, programmør laver regelmæssigt fejl i koden. Om det er mindre tastefejl eller alvorlige fejl i algoritmen, er det lige meget, sporingsfejl er en meget vigtig del af udviklingen. Nedenfor er flere måder at spore fejl i PHP-kode på.

Metode et. Aktiver fejloutput i php-fil.

Du kan aktivere fejlrapportering direkte i den aktuelle fil, hvor du skriver koden. For at gøre dette skal du placere følgende linjer i begyndelsen:

ini_set("display_errors", 1); ini_set("display_startup_errors", 1); fejlrapportering(E_ALL);

ini_set ("display_errors" , 1 );

ini_set ("display_startup_errors" , 1 );

fejlrapportering(E_ALL);

Herefter skal du blot køre filen, hvis der er fejl i koden, vil de blive vist på siden.

Metode to. Aktiver visning af fejl i php.ini-filen.

Du kan også aktivere fejloutput i php konfigurationer, så vises de ikke kun ved opstart specifik fil, og i det hele taget php filer. For at gøre dette skal du finde filen php.ini i filsystem din server og tilføj følgende linjer til den:

error_reporting = E_ALL display_errors = Til display_startup_errors = Til

error_reporting = E_ALL

display_errors = Til

display_startup_errors = Til

Når du har gemt ændringerne til filen, genstart din server, og ændringerne træder i kraft.

Metode tre. Aktiver fejloutput i .htaccess-filen.

En anden måde at aktivere fejl på er at foretage ændringer i .htaccess-filen. For at gøre dette, find denne fil i dit websteds filsystem, og tilføj følgende linjer til det:

php_value display_errors 1 php_value display_startup_errors 1 php_value error_reporting E_ALL

php_value display_errors1

php_value display_startup_errors1

php_value error_reporting E_ALL

Vær forsigtig, som nogle CMS systemer har en anden fil kaldet htaccess.txt, som fungerer som en skabelon til at foretage justeringer. Du skal ændre .htaccess-filen, ellers vil ændringerne ikke have nogen effekt på fejloutputtet.

Disse tre måder, du kan aktivere fejloutput i dit projekt skrevet i PHP. Husk dog, at fejloutput kun bør være aktiveret under udvikling eller ved sporing af en fejl. Omfatte denne funktion Når dit projekt allerede er kommet i produktion, er det højst uønsket, jeg tror ikke, at dine brugere bliver glade, når der vises fejl på siden i stedet for det ønskede indhold.