try ini_set info handling errors error_reporting error e_all display_errors catch bloquear php mysql

ini_set - Desactiva las advertencias y errores en php/mysql



php error_reporting 32767 (6)

Recibo avisos y advertencias y me gustaría desactivarlos en mi archivo php. los errores son:

Warning: fsockopen()

y los avisos son:

Notice: A non well formed numeric value encountered in

Estoy planeando usar cron para este script php y no quiero recibir ningún error o aviso conectado en ningún lugar.


Cuando esté seguro de que su script está funcionando perfectamente, puede deshacerse de Warning y avisos como este: Ponga esta línea al comienzo de su script php:

error_reporting(E_ERROR);

Antes de eso, cuando trabaje en su secuencia de comandos, le aconsejaría que depure correctamente su secuencia de comandos para que todos los avisos o advertencias desaparezcan uno por uno. Por lo tanto, primero debe establecerlo lo más detallado posible con:

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

ACTUALIZACIÓN: cómo registrar errores en lugar de mostrarlos Como se sugiere en los comentarios, la mejor solución es registrar errores en un archivo para que solo el desarrollador de PHP vea los mensajes de error, no los usuarios. Una posible implementación es a través del archivo .htaccess, útil si no tiene acceso al archivo php.ini ( source ).

# supress php errors php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_value docref_root 0 php_value docref_ext 0 # enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log # prevent access to PHP error log <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>


Mostrar siempre errores en el servidor de prueba. Nunca muestre errores en el servidor de producción.

Escriba una secuencia de comandos para determinar si la página está en un servidor local, de prueba o en vivo, y configure $ state como "local", "prueba" o "en vivo". Entonces:

if( $state == "local" || $state == "testing" ) { ini_set( "display_errors", "1" ); error_reporting( E_ALL & ~E_NOTICE ); } else { error_reporting( 0 ); }


Prefiera las funciones con el símbolo ''@'' para suprimir ciertos errores, en lugar de desactivar TODOS los informes de errores.

Más información: http://php.net/manual/en/language.operators.errorcontrol.php

PHP admite un operador de control de errores: el signo at (@). Cuando se antepone a una expresión en PHP, cualquier mensaje de error que pueda ser generado por esa expresión será ignorado.

@fsockopen();


Referencia de error_reporting PHP:

// Turn off all error reporting error_reporting(0); // Report simple running errors error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings ...) error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors (see changelog) error_reporting(E_ALL); // Report all PHP errors error_reporting(-1); // Same as error_reporting(E_ALL); ini_set(''error_reporting'', E_ALL);


Si no puede acceder a su archivo php.ini por alguna razón, deshabilite los errores a stdout ( display_errors ) en un archivo .htaccess en cualquier directorio agregando la siguiente línea:

php_flag display_errors off

Además, puede agregar el registro de errores a un archivo:

php_flag log_errors on


puede establecer el tipo de informe de errores que necesita en php.ini o mediante el uso de la función error_reporting () en la parte superior de la secuencia de comandos.