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:
Postar um comentário