Frage

Im Prinzip habe ich eine einzelne Seite auf meiner Website, die ich alle php erorrs will, Warnungen, etc mir das Skript ausgeführt wird jedes Mal in einer E-Mail gesendet werden sollte.

Edit:. Dies muss Code sein, der auf der Seite platziert ist, nicht bearbeitet zu php_ini oder so etwas

Edit 2: dies muss alle Fehler fangen und alle Fehler in einer E-Mail am Ende des Skripts

senden
War es hilfreich?

Lösung

Sie Setup benötigen eine Fehlerbehandlung und registrieren eine Abschaltfunktion das Mailing zu tun. in einem sehr stark vereinfachten Beispiel, das in etwa so aussehen könnte:

<?php

$__errors = array();
function my_error_handler($code, $message, $file, $line) {
    global $__errors;
    $__errors[] = sprintf('"%s" (%s line %s)', $message, $file, $line);
}
set_error_handler( 'my_error_handler', E_ALL );

function send_error_log() {
    global $__errors;

    if ( count( $__errors ) > 0 ) {
        foreach ( $__errors as $error ) {
            $body . $error . "\n";
        }
        mail( 'to@example.com', 'error log', $body );
    }
}
register_shutdown_function( 'send_error_log' );

?>

Andere Tipps

Wenn Sie versuchen, Probleme mit dem Code zu fangen, kann es effizienter sein, nur Fehlerprotokolle auf Ihrem Webserver aussehen (vorausgesetzt, dass Sie Zugriff haben). Wenn Sie diese in Kurzform möchten, können Sie einen cron-Job schreiben Sie jeden Tag die Post (oder was auch immer).

Wenn Sie keinen Zugriff auf die Fehlerprotokolle, dann einen Fehlerhandler zu schreiben und set_error_hander() verwendet, ist die beste Wahl. Ich würde noch empfehlen die Fehlerbehandlung schreiben in eine Protokolldatei mit, anstatt Sie eine E-Mail. Wenn Ihre Website keinen Verkehr auf alle Ihre E-Mail-Box wird in kürzester Zeit überfüllt sein.

Das Beste, was Sie tun können, ist wahrscheinlich ein Fehler-Handler, und Einstellung, die mit set_error_handler zu schreiben. Dies wird jedoch nicht umgehen alle mögliche Fehler berücksichtigt.

Sie können eine benutzerdefinierte Funktion für set_error_handler()

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top