Location: PHPKode > projects > WebJaxe > php/include/outils.php
<?php
// WebJaxe, Observatoire de Paris, licence GPL
// encodage : UTF-8


// Initialisation pour la gestion propre des erreurs
function init_erreurs() {
    // Fixe le niveau de rapport d'erreur pour ce script

    ob_start();
    
    function myErrorHandler ($errno, $errstr, $errfile, $errline) {    
        
        $debug = false;
        
        switch ($errno) {
            case E_USER_ERROR: 
                ob_end_clean();
                debut_html(TITRE_ERREURS, "");
                if ($debug) {
                    echo "<p class=\"erreur\">FATAL [$errno] $errstr</p>\n";
                    echo "<p class=\"erreur\">".FICHIER.": $errfile ".LIGNE.": $errline</p>\n";
                } else
                    echo "<p class=\"erreur\">".$errstr."</p>";
                //if (isset($_SERVER['HTTP_REFERER']))
    			//    echo '<p><a href="'.$_SERVER['HTTP_REFERER'].'">'.RETOUR.'</a></p>';
    			// ne marche pas toujours
                fin_html();
                exit;
                break;
            
            case E_USER_WARNING:
                if ($debug) {
                    echo "<b>ERROR</b> [$errno] $errstr<br>\n";
                    echo "<p class=\"erreur\">".FICHIER.": $errfile ".LIGNE.": $errline</p>\n";
                } else
                    echo "<p class=\"erreur\">".CONTACTER_ADMIN."</p>";
                break;
            
            case E_USER_NOTICE:
                if ($debug) {
                    echo "<b>WARNING</b> [$errno] $errstr<br>\n";
                    echo "<p class=\"erreur\">".FICHIER.": $errfile ".LIGNE.": $errline</p>\n";
                } else
                    echo "<p>".PROBLEME_PAGE."</p>";
                break;
            
            default:
                error_log("webjaxe: $errfile ligne $errline: erreur: [$errno] $errstr");
                ob_end_clean();
                entete(TITRE_ERREURS);
                if ($debug)
                    echo "<p class=\"erreur\">default [$errno] $errstr</p>\n";
                else
                    echo "<p class=\"erreur\">".CONTACTER_ADMIN."</p>";
                pied();
                exit;
                break;
        }
    }
    $old_error_handler = set_error_handler('myErrorHandler');
}



// Initialisation pour la gestion propre des erreurs : affichage sous forme de texte simple
function init_erreurs_texte() {
    // Fixe le niveau de rapport d'erreur pour ce script
    ob_start();
    function myErrorHandler ($errno, $errstr, $errfile, $errline) {    
        
        $debug = false;
        
        switch ($errno) {
            case E_USER_ERROR: 
                ob_end_clean();
                header("content-type:text/plain; charset=utf-8");
                if ($debug) {
                    echo "FATAL [$errno] $errstr\n";
    				echo FICHIER.": $errfile ".LIGNE.": $errline";
                } else
                    echo $errstr;
                exit;
                break;
            
            case E_USER_WARNING:
                if ($debug) {
                    echo "ERROR [$errno] $errstr\n";
                    echo FICHIER.": $errfile ".LIGNE.": $errline";
                } else
                    echo CONTACTER_ADMIN;
                break;
            
            case E_USER_NOTICE:
                if ($debug) {
                    echo "WARNING [$errno] $errstr";
                    echo FICHIER.": $errfile ".LIGNE.": $errline";
                } else
                    echo CONTACTER_ADMIN;
    
                break;
            
            default:
                error_log("webjaxe: $errfile ligne $errline: erreur: [$errno] $errstr");
                ob_end_clean();
                header("content-type:text/plain; charset=utf-8");
                if ($debug)
                    echo "default [$errno] $errstr";
                else
                    echo CONTACTER_ADMIN;
                exit;
                break;
        }
    }
    $old_error_handler = set_error_handler('myErrorHandler');
}




// Entête des fichiers HTML
function entete($titre) {
    echo <<<ENDOFECHO
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

ENDOFECHO;
    echo "    <title>".$titre."</title>\n";
    echo <<<ENDOFECHO
</head>

<body>

ENDOFECHO;
}


// lance une erreur avec un message d'erreur
function erreur($message) {
    trigger_error($message, E_USER_ERROR);
}

// Pied de page des fichiers HTML
function pied() {
    echo <<<ENDOFECHO
</body>
</html>
ENDOFECHO;
}

?>
Return current item: WebJaxe