Je eigen error maken
De errors die PHP geeft, kunnen handig zijn tijdens de ontwikkeling van een script; als je site voor groot publiek te zien is, is het niet erg vriendelijk. Meestal zullen je bezoekers metteen je site verlaten als ze zo'n error zien. Daarom is het handig om zelf een error-functie te maken. Zo'n functie heeft de volgende opbouw:
error_level = de numerieke waarde van het soort error (zie 'Error namen', eerder deze tut).
error_message = het bericht dat wordt weergeven.
error_file = niet verplicht, het bestand waarin de error was.
error_line = niet verplicht, de regel waarin de error was.
error_context = niet verplicht, een array met de variabelen en waardes die gebruikt werden tijdens de error.
Zo'n error-functie zou er bijvoorbeeld zo uit kunnen zien:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// een error-functie maken
function error_function($err_nr, $err_msg, $err_file, $err_line) {
// Weergeef de file en regel als de gebruiker de webmaster is
if ($_SESSION['gebruiker'] == "webmaster") {
echo "<p class='error'>Error: file ".$err_file.", line ".$err_line."</p>\n";
}
// include een andere pagina bij E_ERROR of E_USER_ERROR
// gebruik de numerieke waarden voor de error
if ($err_nr == E_ERROR OR $err_nr == E_USER_ERROR) {
include "includes/error.php";
}
else { // een andere error
echo "<p class='error'>Er is een fout opgetreden op onze site: ".$err_msg.".<br />\n";
echo "Sorry voor het ongemak.</p>\n";
}
}
?>
// een error-functie maken
function error_function($err_nr, $err_msg, $err_file, $err_line) {
// Weergeef de file en regel als de gebruiker de webmaster is
if ($_SESSION['gebruiker'] == "webmaster") {
echo "<p class='error'>Error: file ".$err_file.", line ".$err_line."</p>\n";
}
// include een andere pagina bij E_ERROR of E_USER_ERROR
// gebruik de numerieke waarden voor de error
if ($err_nr == E_ERROR OR $err_nr == E_USER_ERROR) {
include "includes/error.php";
}
else { // een andere error
echo "<p class='error'>Er is een fout opgetreden op onze site: ".$err_msg.".<br />\n";
echo "Sorry voor het ongemak.</p>\n";
}
}
?>
Nu moet je alleen nog tegen php zeggen dat deze functie gebruikt moet worden als er een error komt. Dat doe je met de functie set_error_handler(). Bij ons vorige voorbeeld zou dat er dus zo uit komen te zien:
Ik hoop dat jullie wat aan deze tutorial hebben gehad, tips zijn altijd welkom ;)