sexta-feira, 28 de dezembro de 2018

MOSTRAR E OCULTAR ERROS NO DEBIAN 9, APACHE2 E PHP 7

Descrevo uma configuração para Mostrar ou Ocultar Erros de Programação Web tendo servidor Debian 9, Apache2 e Linguagem de Programação PHP 7.


/*
    // ARQUIVO DE CONFIGURAÇÃO SERVIDOR APACHE2
    # vim /etc/php/7.2/apache2/php.ini
    ----------
    error_reporting = E_ALL | E_STRICT
    display_errors = On
    display_startup_errors = On
    html_errors = On

    REINICIAR apache2
    # systemctl restart apache2.service
    ----------
*/

// SALVA LOG ERRO EM ARQUIVO
//ini_set('error_log', dirname(__FILE__) . '/error_log_php.txt');
// 0 - esconde erro
// 1 - mostra erro

// OCULTA TODOS OS ERROS
#    ini_set('display_errors', 0);
#    ini_set('display_startup_errors', 0);
#    error_reporting(0);

#-------------------------------------------------------------------------------
### MENU DE MOSTRA/OCULTA ERROS WEB

    ### MENU
    //$mostra_erro_web = 0; // OCULTA TUDO
    //$mostra_erro_web = 1; // MOSTRA TUDO
    $mostra_erro_web = 2; // MOSTRA PARCIAIS

    
    // OCULTA TODOS OS ERROS - 0
    if($mostra_erro_web == 0){
        oculta_display();
        oculta_startup();
        oculta_reporting();
    } 
    
    
    // MOSTRA TODOS OS ERROS
    if($mostra_erro_web == 1){
        mostra_display();           // MOSTRA ERRO NA TELA
        mostra_startup();           // MOSTRA ERRO DE INICIALIZACAO DO PHP
        mostra_reporting();         // MOSTRA TODOS ERROS
    }
    
    
    // MOSTRA ERROS PARCIAIS
    if($mostra_erro_web == 2){
        mostra_display();           // * MOSTRA ERRO NA TELA
        mostra_startup();           // * MOSTRA ERRO DE INICIALIZACAO DO PHP
        //oculta_notice();          // MOSTRA TUDO EXCETO NOTICE
        //oculta_warning();         // MOSTRA TUDO EXCETO WARNING
        oculta_notice_warning();    // * MOSTRA TUDO EXCETO NOTICE E WARNING
        mosta_erro_mysql($e);       // MOSTRA ERRO MySQL
    }


#-------------------------------------------------------------------------------
### OCULTA TODOS OS ERRROS

// OCULTA DISPLAY
function oculta_display(){
    $msg = ini_set('display_errors', 0);
    return ($msg);
}


// OCULTA STARTUP
function oculta_startup(){
    $msg = ini_set('display_startup_errors', 0);
    return ($msg);
}


// OCULTA REPORTING
function oculta_reporting(){
    $msg = error_reporting(0);
    return ($msg);
}

#-------------------------------------------------------------------------------
### MOSTRA TODOS OS ERROS

// MOSTRA ERRO NA TELA
function mostra_display(){
    $msg1 = ini_set('display_errors', 1);
    return ($msg1);
}


// MOSTRA ERRO DE INICIALIZACAO DO PHP
function mostra_startup(){
    $msg1 = ini_set('display_startup_errors', 1);
    return ($msg1);
}


// MOSTRA TODOS OS ERROS
function mostra_reporting(){
    $msg = error_reporting(E_ALL);
    return ($msg);
}


#-------------------------------------------------------------------------------
### MOSTRA ERROS PARCIAIS


// OCULTA NOTICE
function oculta_notice(){
    $msg = error_reporting(E_ALL & ~E_NOTICE);
    return ($msg);
}


// OCULTA WARNING
function oculta_warning(){
    $msg = error_reporting(E_ALL & ~E_WARNING);
    return ($msg);
}


// OCULTA NOTICE + WARNING
function oculta_notice_warning(){
    $msg = error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
    return ($msg);
}


function mosta_erro_mysql($e){
if($e){
            if(!mysqli_query($e, "SET a=1")){
                    $msg4 = printf("
MENSAGEM ERRO MySQL...: %s\n", mysqli_error($e));

                    return($msg4);
            }
        }
return ($e);
}

#-------------------------------------------------------------------------------

Para chamar esta função dentro da página "index.php", basta fazer um INCLUDE.

    // ARQUIVO DE CONFIGURAÇÃO
    include "arquivo-conf.php";

Nenhum comentário: