Uitgifte van fouten in PHP

Het maakt niet uit hoe voorzichtig en attentWebprogrammeur, tijdens zijn werk, fouten en onnauwkeurigheden zijn mogelijk. Als gevolg hiervan kan dit leiden tot een falen van de site of service. Voor foutopsporing tijdens projectontwikkeling is het mogelijk om foutuitvoer in PHP op te nemen.

Hoe werkt het?

PHP reageert zeker op deze of gene codescript. In sommige gevallen - geeft de vereiste actie, in andere - een fout weer. Dit mechanisme helpt de ontwikkelaar om tekortkomingen te corrigeren op het moment dat de codegedeelte wordt geïmplementeerd.

php-uitvoerfouten

De uitvoer van fouten in PHP is echter niet altijd nodig. Nadat de ontwikkeling van het project is voltooid, is deze functie uitgeschakeld om hacking of ongeoorloofde toegang te voorkomen.

afstelling

Voor de volledige PHP-tolkconfiguratie,bestand php.ini. Het heeft een error_reporting-richtlijn, die alleen de uitvoer van fouten definieert in PHP. Hoewel het uitzonderingsafhandeling omvat, is display_errors verantwoordelijk voor weergave in het browservenster. Als het is uitgeschakeld, geeft het systeem een ​​lege pagina weer in plaats van een fout.

Classificatie van uitzonderingen

De uitvoer van fouten in PHP kan voorwaardelijk worden onderverdeeld in verschillende categorieën:

  • fouten, waardoor het script niet meer werkt. De zogenaamde, dodelijke. Deze omvatten E_ERROR, E_COMPILE_ERROR;

  • fouten die kunnen worden geëlimineerd. Hun waarden voor de richtlijn error_reporting kunnen zijn: E_WAARSCHUWING, E_NOTICE en anderen.

Het is de moeite waard om elk type in meer detail te beschouwen en zijn functie te beschrijven.

  • E_ERROR. Meestal verwijst dit type naar dergelijke fouten die niet snel kunnen worden verwijderd of waarmee de uitvoering van het script kan worden voortgezet. Dit kan problemen met geheugentoewijzing omvatten;

  • E_WARNING. De code blijft werken, maar er wordt een waarschuwing weergegeven dat er een fout is opgetreden, waarvan de code in het bericht wordt vermeld. Niet kritisch;

  • E_NOTICE. Meldingen die laten zien: er is iets gebeurd dat een fout zou kunnen veroorzaken. Ook niet essentieel voor code-uitvoering;

  • E_USER_ERROR. Fouten gegenereerd door de gebruiker;

  • E_ALL. Dit omvat alle soorten fouten. Meestal is deze optie standaard ingeschakeld bij het installeren van de interpreter.

Hoe foutoutput in PHP te activeren

Methode voor het gebruik van foutmechanismen in PHPkan verschillen, afhankelijk van waar de code wordt toegepast - op een hosting of op een lokale computer. In het tweede geval kan de ontwikkelaar zijn server configureren en weergeven zoals hij wil, namelijk de configuratie in het bestand php.ini wijzigen. Het volstaat om twee richtlijnen - display_errors en error_reporting aan de volgende vorm te geven:

display_errors on

error_reporting E_ALL

Deze commando's tonen alle foutmeldingen direct in het browservenster.

php inschakelen foutrapportage

Als de ontwikkeling wordt uitgevoerd op een virtuelehosting, dan is de foutdisplayfunctie meestal om veiligheidsredenen uitgeschakeld. Daarom moet u het Apache htaccess-serverconfiguratiebestand gebruiken om het te activeren. Meestal staat het in de root van de site. U moet er een paar regels aan toevoegen met behulp van een teksteditor:

php_flag display_errors on

php_value foutrapportage -1

U kunt ook fouten rechtstreeks vanuit de code uitvoeren met behulp van de functie ini_set (). Houd er echter rekening mee dat de toepassing na de ontwikkeling van de site beveiligingsproblemen kan veroorzaken.

php-uitvoerfouten naar bestand

Schrijf naar bestand

Met PHP kunt u alle fouten opslaan die zich hebben voorgedaan op een specifieke locatie op de harde schijf. Om de uitvoer van PHP-fouten in een bestand op te nemen, kunt u drie methoden gebruiken:

  1. bewerk het bestand php.ini. Hier moet je twee regels definiëren. De eerste is log_errors = Aan, die de uitvoercapaciteit daadwerkelijk activeert. De tweede is error_log = pad / naar het gewenste / bestand.

  2. Bewerk htaccess. Je kunt er ook twee regels aan toevoegen. php_value log_errors "aan" en php_value error_log pad / naar het bestand.

  3. Gebruik de functie ini_set op de gewenste plaats van code.

conclusie

Foutoutput in PHP is een noodzakelijk hulpmiddel infoutopsporingscode. Maar het kan ook potentieel kwetsbare gebieden creëren. Daarom moet u dit mechanisme zorgvuldig en zorgvuldig gebruiken. Nadat de site of service alle testfasen heeft doorlopen, moet u ervoor zorgen dat er geen fouten worden weergegeven waarmee een aanvaller toegang kan krijgen tot belangrijke gegevens.