error_handler werkt niet mee
Nu probeer ik het te gebruiken voor een ander domeinnaam van mij, helaas lukt het niet. Ik maak expres syntax fouten, maar ik krijg geen mail erover.
Ik zie niet waar het fout gaat...
Bovenaan elk pagina zet ik bovenstaande code erbij.
Het bestand config.inc.php ziet als volgt uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php # Script 18.3 - config.inc.php
/* This script:
* - define constants and settings
* - dictates how errors are handled
* - defines useful functions
*/
// Document who created this site, when, why, etc.
// ********************************** //
// ************ SETTINGS ************ //
// Flag variable for site status:
define('LIVE', TRUE);
// Admin contact address:
define('EMAIL', '[email protected]');
// Site URL (base for all redirections):
define ('BASE_URL', 'http://www.mijndomain.nl/');
// Location of the MySQL connection script:
define ('MYSQL', 'Inc/db-connection.php');
// Adjust the time zone for PHP 5.1 and greater:
date_default_timezone_set ('Europe/Amsterdam');
// ************ SETTINGS ************ //
// ********************************** //
// ****************************************** //
// ************ ERROR MANAGEMENT ************ //
// Create the error handler:
function my_error_handler ($e_number, $e_message, $e_file, $e_line, $e_vars) {
// Build the error message:
$message = "An error occurred in script '$e_file' on line $e_line: $e_message\n";
// Add the date and time:
$message .= "Date/Time: " . date('n-j-Y H:i:s') . "\n";
if (!LIVE) { // Development (print the error).
// Show the error message:
echo '<div class="error">' . nl2br($message);
// Add the variables and a backtrace:
echo '<pre>' . print_r ($e_vars, 1) . "\n";
debug_print_backtrace();
echo '</pre></div>';
} else { // Don't show the error:
// Send an email to the admin:
$body = $message . "\n" . print_r ($e_vars, 1);
mail(EMAIL, 'Site Error!', $body, 'From: [email protected]');
// Only print an error message if the error isn't a notice:
if ($e_number != E_NOTICE) {
echo '<div class="error">A system error occurred. We apologize for the inconvenience.</div><br />';
}
} // End of !LIVE IF.
} // End of my_error_handler() definition.
// Use my error handler:
set_error_handler ('my_error_handler');
// ************ ERROR MANAGEMENT ************ //
// ****************************************** //
[/code]
/* This script:
* - define constants and settings
* - dictates how errors are handled
* - defines useful functions
*/
// Document who created this site, when, why, etc.
// ********************************** //
// ************ SETTINGS ************ //
// Flag variable for site status:
define('LIVE', TRUE);
// Admin contact address:
define('EMAIL', '[email protected]');
// Site URL (base for all redirections):
define ('BASE_URL', 'http://www.mijndomain.nl/');
// Location of the MySQL connection script:
define ('MYSQL', 'Inc/db-connection.php');
// Adjust the time zone for PHP 5.1 and greater:
date_default_timezone_set ('Europe/Amsterdam');
// ************ SETTINGS ************ //
// ********************************** //
// ****************************************** //
// ************ ERROR MANAGEMENT ************ //
// Create the error handler:
function my_error_handler ($e_number, $e_message, $e_file, $e_line, $e_vars) {
// Build the error message:
$message = "An error occurred in script '$e_file' on line $e_line: $e_message\n";
// Add the date and time:
$message .= "Date/Time: " . date('n-j-Y H:i:s') . "\n";
if (!LIVE) { // Development (print the error).
// Show the error message:
echo '<div class="error">' . nl2br($message);
// Add the variables and a backtrace:
echo '<pre>' . print_r ($e_vars, 1) . "\n";
debug_print_backtrace();
echo '</pre></div>';
} else { // Don't show the error:
// Send an email to the admin:
$body = $message . "\n" . print_r ($e_vars, 1);
mail(EMAIL, 'Site Error!', $body, 'From: [email protected]');
// Only print an error message if the error isn't a notice:
if ($e_number != E_NOTICE) {
echo '<div class="error">A system error occurred. We apologize for the inconvenience.</div><br />';
}
} // End of !LIVE IF.
} // End of my_error_handler() definition.
// Use my error handler:
set_error_handler ('my_error_handler');
// ************ ERROR MANAGEMENT ************ //
// ****************************************** //
[/code]
Gewijzigd op 04/01/2021 23:11:15 door Mohamed nvt
PS: Ik vind een hele error handler niet bepaald iets wat bij een configuratie hoort.
Ikzelf zou dat liever scheiden.
- Ariën - op 04/01/2021 23:14:35:
Is het probleem enkel dat je geen mail krijgt?
PS: Ik vind een hele error handler niet bepaald iets wat bij een configuratie hoort.
Ikzelf zou dat liever scheiden.
PS: Ik vind een hele error handler niet bepaald iets wat bij een configuratie hoort.
Ikzelf zou dat liever scheiden.
Klopt ik krijg geen mail wanneer de code niet correct is, zoals een syntax fout en het pagina is dan wit.
Bedoel je dat je liever dat try, catch gebeuren gebruikt om het allemaal overzichtelijk te maken?
Ik persoonlijk heb niet echt een voorkeur, zolang het werkt en ik het begrijpt ;-)
Gewijzigd op 04/01/2021 23:24:47 door Mohamed nvt
Wat ik bedoelde met scheiden:
De configuratie beschrijft de configuratie-parameters van je site. Een functie hoort daar niet bij.
je error_handler kan je prima in een los errorhandler.inc.php plaatsen.
Gewijzigd op 04/01/2021 23:28:12 door - Ariën -
Ik zit bij Strato en tot nu toe heb ik nooit error_log bekijken. Geen idee of ik toegang tot heb...
- Ariën - op 04/01/2021 23:34:14:
Oke, tnx! Nooit geweten.
Zojuist gekeken naar de logs van vandaag, maar er staan geen fouten in bizar genoeg...
Anders wordt het debuggen, en kijken wat er gebeurt zonder error_handler.
- Ariën - op 04/01/2021 23:52:28:
Kijk je wel in de error_log, en niet de access_log?
Anders wordt het debuggen, en kijken wat er gebeurt zonder error_handler.
Anders wordt het debuggen, en kijken wat er gebeurt zonder error_handler.
Ik keek in de juiste log, maar ik heb het opgelost.
PHP versie had ik staan op V.8 en ik heb het nu teruggezet naar 7.x en mijn error_handler werkt direct.
Bedankt voor het meedenken!
Er is blijkbaar het een en ander veranderd aan de error_handler.
https://www.php.net/manual/en/migration80.incompatible.php