¿Cómo hago para que se muestren los errores de PHP?

Resuelto Abs asked hace 54 años • 27 respuestas

Revisé mi archivo PHP ini ( php.ini) y display_errorsestá configurado y también aparece el informe de errores E_ALL. He reiniciado mi servidor web Apache.

Incluso puse estas líneas en la parte superior de mi script y ni siquiera detecta errores de análisis simples. Por ejemplo, declaro variables con a "$"y no cierro declaraciones ";". Pero todos mis scripts muestran una página en blanco sobre estos errores, pero realmente quiero ver los errores en la salida de mi navegador.

error_reporting(E_ALL);
ini_set('display_errors', 1);

¿Que más queda por hacer?

Abs avatar Jan 01 '70 08:01 Abs
Aceptado

Entorno de desarrollo

Esto siempre funciona para mí:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

Sin embargo, esto no hace que PHP muestre errores de análisis ocurridos en el mismo archivo. Además, PHP puede anular estas configuraciones. En estos casos la única manera de mostrar esos errores es modificar tu php.ini (o php-fpm.conf) con esta línea:

display_errors = on

(Si no tienes acceso a php.ini, entonces poner esta línea .htaccesstambién podría funcionar):

php_flag display_errors 1

entorno de producción

Tenga en cuenta que la recomendación anterior solo es adecuada para el entorno DEV. En un sitio en vivo debe ser

display_errors = off
log_errors = on

Y luego podrá ver todos los errores en el registro de errores. Ver Dónde encontrar el registro de errores de PHP

llamadas AJAX

En caso de llamada AJAX, en un servidor DEV, abra DevTools (F12), luego la pestaña Red. Luego inicie la solicitud cuyo resultado desea ver y aparecerá en la pestaña Red. Haga clic en él y luego en la pestaña Respuesta. Allí verá el resultado exacto.

Mientras esté en un servidor en vivo, simplemente verifique el registro de errores de todos modos.

Fancy John avatar Jan 29 '2014 11:01 Fancy John

No puede detectar errores de análisis en el mismo archivo donde la salida de error está habilitada en tiempo de ejecución, porque analiza el archivo antes de ejecutar cualquier cosa (y dado que encuentra un error durante esto, no ejecutará nada). Deberá cambiar la configuración real del servidor para que display_errors esté activado y se utilice el nivel de error_reporting apropiado. Si no tiene acceso a php.ini, es posible que pueda utilizar .htaccess o similar, según el servidor.

Esta pregunta puede proporcionar información adicional.

Michael Madsen avatar Jun 27 '2009 19:06 Michael Madsen

Dentro de tu php.ini :

display_errors = on

Luego reinicie su servidor web.

user1803477 avatar Jan 08 '2013 09:01 user1803477

Para mostrar todos los errores es necesario:

1. Tenga estas líneas en el script PHP que está llamando desde el navegador (normalmente index.php):

error_reporting(E_ALL);
ini_set('display_errors', '1');

2.(a) Asegúrese de que este script no tenga errores de sintaxis

-o-

2.(b) Establezca display_errors = Onen suphp.ini

De lo contrario, ¡ni siquiera podrá ejecutar esas 2 líneas!

Puede comprobar si hay errores de sintaxis en su script ejecutando (en la línea de comando):

php -l index.php

Si incluye el script de otro script PHP, se mostrarán errores de sintaxis en el script incluido . Por ejemplo:

index.php

error_reporting(E_ALL);
ini_set('display_errors', '1');

// Any syntax errors here will result in a blank screen in the browser

include 'my_script.php';

my_script.php

adjfkj // This syntax error will be displayed in the browser
andre avatar Jan 29 '2014 09:01 andre

Algunos proveedores de alojamiento web le permiten cambiar los parámetros PHP en el .htaccessarchivo.

Puedes agregar la siguiente línea:

php_value display_errors 1

Tuve el mismo problema que el tuyo y esta solución lo solucionó.

Kalhua avatar May 18 '2013 15:05 Kalhua