Errors weergeven/verbergen

Door Daan , 21 jaar geleden, 7.770x bekeken

In deze tut vertel ik hoe je errors weergeeft, verbergt en je eigen errors maakt

Gesponsorde koppelingen

Inhoudsopgave

  1. Inleiding
  2. Error namen
  3. Errors laten zien
  4. Je eigen error maken

 

Er zijn 12 reacties op 'Errors weergevenverbergen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Willem Jan Z
Willem Jan Z
21 jaar geleden
 
0 +1 -0 -1
Ziet er handig uit, misschien is het alleen duidelijker om in jouw functie, ipv de cijfer waarden, gewoon de constanten E_ERROR en E_USER_ERROR te gebruiken.
Dan blijft het voor jezelf ook nog overzichtelijk.
Daan
Daan
21 jaar geleden
 
0 +1 -0 -1
Dank je voor de tip!

Op php.net stond dat het een int moest zijn, maar was vergeen dat E_ERROR natuurlijk een constante is met een int als waarde!
GaMer B
GaMer B
21 jaar geleden
 
0 +1 -0 -1
Erg goed scriptje. Dit kan ik goed gebruiken na debuggen.


21 jaar geleden
 
0 +1 -0 -1
Ik mis de instelling display_errors, de php.ini mogelijkheden om foutmeldingen anders weer te geven [op de linux testmachine hier heb ik het zo ingesteld dat deze in een div boxje staan met een grijze achtergrond en rode letters ;-)]
.htaccess mogelijkheden voor het instellen van error_reporting en display_errors
Jan Koehoorn
Jan Koehoorn
21 jaar geleden
 
0 +1 -0 -1
Op pagina 3 heb je deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// We gaan een select-query uitvoeren.
// Als er geen waardes worden teruggegeven, laten we een error zien.

$select_query = "SELECT * FROM Users WHERE name = 'Jan'";
$result = mysql_query($select_query);
if (mysql_num_rows($result) == 0) {
    trigger_error("De query is niet uitgevoerd", E_USER_WARNING);
}

?>

De errortekst die je geeft is niet correct. Dat een query 0 resultaten heeft, wil niet zeggen dat hij niet is uitgevoerd. Als $result de waarde FALSE oplevert is je query niet gelukt.
Daan
Daan
21 jaar geleden
 
0 +1 -0 -1
@ Webmakerij:
Klopt, ik ben niet heel diep op alles ingegaan. Dat je met php.ini een heel div-boxje kan maken, wist ik niet. Dat zal ik nog ff een keer opzoeken, das inderdaat wel handig

@ Jan:
Owja, had ik niet gezien, het is idd de bedoeling dat de error komt als er geen waarde is opgehaald. De error zal ik nog ff veranderen..

Edit:
Gedaan..
Eris -
Eris -
21 jaar geleden
 
0 +1 -0 -1
Wat veel intresanter is is de errors niet weer gegeven maar afvangen in een error log bestand

De gebruiker is namelijk niet geintresseerd in jouw errors. Dat ben jij en niemand anders....

Gewoon error_reporting(0) is voldoende klaar met het gezeik...

(Op websites die live draaien uiteraard)
Zelf trap ik ze in een errorlog en laat de gebruiker niets zien. Tenzij het een speciale errorr is en dan laat ik alleen de error bericht zien.

(Unable to connect to the database) meer niet. Alleeen jij en de hacker zijn geintreseerd in errors niemand anders....
Daan
Daan
21 jaar geleden
 
0 +1 -0 -1
Daarom kan je ook zelf een error-functie maken.
Kan je zelf alles regelen met je errors: Ze in een database zetten, ze laten e-mailen, ze als commentaar in je html zetten, enz. verzin het zelf maar.

Dat e-mailen kan ook wel via error_reporting, maar hier kan je d'r een heel bericht omheen bouwen.

Als je site nog in ontwikkeling is, kan het handig zijn om alleen bepaalde errors te laten zien, of juist niet, dus daarom het eerste gedeelte van de tut. Ook trouwens omdat je dat ook nodig kan hebben bij het zelf maken van een error-functie.

Je krijgt hierdoor dus veel meer mogelijkheden, kunt alles combineren, enz..
Frank -
Frank -
21 jaar geleden
 
0 +1 -0 -1
Zie ook de PHP-handleiding hoe je met exceptions een fraaie foutafhandeling kunt maken. Dit is vooral handig om in 1x alle mogelijke en onmogelijke fouten op een gebruikersvriendelijke manier af te vangen.

Daarnaast hoef je tijdens het bouwen en testen geen aparte instellingen te gebruiken, kun je die ook niet vergeten aan te passen aan de productie-omgeving.
TJVB tvb
TJVB tvb
21 jaar geleden
 
0 +1 -0 -1
Ik heb hierbij ??n vraagje, geldt dit voor de huidige pagina of voor alle pagina's zodat ik bijvoorbeeld in mijn config file dit kan zetten en het overal werkt.

Dan kun je namenlijk tijdens het ontwikkelen regelen dat alles zichtbaar is en met een wijziging op 1 plek zorgen dat het netjes opgeslagen wordt zonder dat de gebruiker het ziet. (met een eigen error functie)
Martijn
Martijn
21 jaar geleden
 
0 +1 -0 -1
Gewoon includen zou ik zeggen...
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Ik zou gewoon error_reporting op 0 zetten en dan zelf afvangen (niet in een globale functie). desnoods display_errors op 0 (weet niet of het nodig is) zodat er zeker niets geprint wordt.
Je moet niet teveel logic in je error handler hangen, want ook dat kan allemaal fout gaan.
Afvangen, opslaan, berichtje printen is meestal voldoende.

Het belangrijkste is echter dat het altijd aan de programmeur ligt als php een error spawnt. Altijd! PHP kan namelijk alles controleren, voordat ie iets gaat doen wat een error zou kunnen opleveren.

Dus in een perfecte applicatie is een error handler niet nodig :)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Inleiding
  2. Error namen
  3. Errors laten zien
  4. Je eigen error maken

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.