Comment puis-je envoyer toutes les erreurs php exécuter sur une page à un e-mail?

StackOverflow https://stackoverflow.com/questions/1702693

  •  19-09-2019
  •  | 
  •  

Question

En fait, j'ai une seule page sur mon site que je veux tout php erorrs, avertissements, etc à envoyer à moi dans un e-mail chaque fois que le script est exécuté.

Edit:. Cela doit être un code qui est placé sur la page, pas modifier à php_ini ou quelque chose comme ça

Edit 2: cela doit attraper toutes les erreurs et envoyer toutes les erreurs dans un e-mail à la fin du script

Était-ce utile?

La solution

vous devez configurer un gestionnaire d'erreur et enregistrer une fonction d'arrêt pour faire l'envoi. dans un exemple très simpliste qui pourrait ressembler à ceci:

<?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' );

?>

Autres conseils

Si vous essayez d'attraper des problèmes avec le code, il peut être plus efficace de simplement regarder vos journaux d'erreur de serveur Web (étant donné que vous avez accès). Si vous souhaitez que ces sous forme digest, vous pouvez écrire une tâche cron pour vous envoyer chaque jour (ou autre).

Si vous n'avez pas accès aux journaux d'erreurs, puis écrire un gestionnaire d'erreurs et l'utilisation set_error_hander() est votre meilleur pari. Je vous suggère d'avoir encore le gestionnaire d'erreurs d'écriture dans un fichier journal plutôt que de vous envoyer. Si votre site est tout le trafic du tout votre boîte email sera plus plein en peu de temps.

Le mieux que vous pouvez faire est probablement d'écrire un gestionnaire d'erreur et du paramètre avec set_error_handler. Cependant, ce ne sera pas gérer tous erreurs possibles.

Vous pouvez créer une fonction personnalisée pour set_error_handler()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top