error_handler werkt niet mee

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mohamed nvt

Mohamed nvt

04/01/2021 22:59:43
Quote Anchor link
In het verleden heb ik onderstaande error_handler gebruikt en het wekte perfect.
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...


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
require('Inc/config.inc.php');

Bovenaan elk pagina zet ik bovenstaande code erbij.


Het bestand config.inc.php ziet als volgt uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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', 'mijnmailadres@mijndomain.nl');

// 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: mijnmailadres@mijndomain.nl');
    
        // 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
 
PHP hulp

PHP hulp

26/01/2021 22:02:38
 
- Ariën -
Beheerder

- Ariën -

04/01/2021 23:14:35
Quote Anchor link
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.
 
Mohamed nvt

Mohamed nvt

04/01/2021 23:24:06
Quote Anchor link
- 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.


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
 
- Ariën -
Beheerder

- Ariën -

04/01/2021 23:27:33
Quote Anchor link
De pagina is dan wit, en dus zonder output? Heb je al de error_log erbij gepakt?

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 -
 
Mohamed nvt

Mohamed nvt

04/01/2021 23:31:12
Quote Anchor link
Klopt de pagina is wit en zonder output.
Ik zit bij Strato en tot nu toe heb ik nooit error_log bekijken. Geen idee of ik toegang tot heb...
 
- Ariën -
Beheerder

- Ariën -

04/01/2021 23:34:14
 
Mohamed nvt

Mohamed nvt

04/01/2021 23:49:49
Quote Anchor link
- 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...
 
- Ariën -
Beheerder

- Ariën -

04/01/2021 23:52:28
Quote Anchor link
Kijk je wel in de error_log, en niet de access_log?
Anders wordt het debuggen, en kijken wat er gebeurt zonder error_handler.
 
Mohamed nvt

Mohamed nvt

05/01/2021 00:36:15
Quote Anchor link
- 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.


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!
 
- Ariën -
Beheerder

- Ariën -

05/01/2021 01:03:44
Quote Anchor link
Het loont ook om uit te zoeken waarom het niet werkt.
Er is blijkbaar het een en ander veranderd aan de error_handler.

https://www.php.net/manual/en/migration80.incompatible.php
 



Overzicht Reageren

 
 

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.