He comprobado mi archivo ini de PHP ( php.ini
) y display_errors
está configurado, y también lo está el informe de errores E_ALL
. He reiniciado mi servidor web Apache.
Incluso he puesto estas líneas en la parte superior de mi script, y ni siquiera detecta errores simples de análisis. Por ejemplo, declaro variables con "$"
ay 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?
php
error-handling
syntax-error
error-reporting
Abdominales
fuente
fuente
$_REQUEST
parámetro), estas dos líneas funcionarán la mayor parte del tiempo.Respuestas:
Esto siempre funciona para mí:
Sin embargo, esto no hace que PHP muestre errores de análisis: la única forma de mostrar esos errores es modificar su php.ini con esta línea:
(si no tiene acceso
php.ini
, entonces poner esta línea también.htaccess
podría funcionar):fuente
php_flag display_errors 1
for .htaccessE_ALL
no es suficiente para mostrar todos los errores en PHP 5.3. "seE_STRICT
convirtió en parte deE_ALL
5.4.0" - Manual PHP que necesitaE_ALL | E_STRICT
o-1
en esa versión.No puede detectar los errores de análisis al habilitar la salida de errores 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). Tendrá que cambiar la configuración real del servidor para que display_errors esté activado y se use el nivel de informe de error apropiado. Si no tiene acceso a php.ini, puede usar .htaccess o similar, dependiendo del servidor.
Esta pregunta puede proporcionar información adicional.
fuente
Dentro de tu php.ini :
Luego reinicie su servidor web.
fuente
sudo service apache2 restart
sudo apachectl -k restart
.Loaded Configuration File
Para mostrar todos los errores necesita:
1. Tenga estas líneas en el script PHP que está llamando desde el navegador (normalmente
index.php
):2. (a) Asegúrese de que este script no tenga errores de sintaxis
-o-
2. (b) Establecer
display_errors = On
en suphp.ini
De lo contrario, ¡ni siquiera puede ejecutar esas 2 líneas!
Puede verificar si hay errores de sintaxis en su script ejecutando (en la línea de comando):
Si incluye el script de otro script PHP , mostrará errores de sintaxis en el script incluido . Por ejemplo:
index.php
my_script.php
fuente
Algunos proveedores de alojamiento web le permiten cambiar los parámetros de PHP en el
.htaccess
archivo.Puede agregar la siguiente línea:
Tuve el mismo problema que el tuyo y esta solución lo solucionó.
fuente
Puede encontrar que todas las configuraciones para "informe de errores" o "errores de visualización" no parecen funcionar en PHP 7. Esto se debe a que el manejo de errores ha cambiado. Intenta esto en su lugar:
O, para detectar excepciones y errores de una vez (esto no es compatible con PHP 5):
fuente
try{} catch() {}
código en todas partes en el código php ya definido, no quiero ni pensar en el lío que va a ser ..$bt = debug_backtrace(); print_r($bt);
.Error
. Si reescribe todas las solicitudes (excepto tal vez JavaScript, CSS, Imágenes, etc.) en el archivo index.php, entonces tiene el bloque try catch allí, lo hace más fácil. Sí, cualquier sistema que no tenga un solo punto de entrada sería un gran dolor de cabeza para actualizar.Esto funcionará:
fuente
Utilizar:
Esta es la mejor manera de escribirlo, pero un error de sintaxis genera un resultado en blanco, por lo tanto, use la consola para verificar si hay errores de sintaxis. La mejor manera de depurar el código PHP es usar la consola; ejecuta lo siguiente:
fuente
Establezca esto en su archivo index.php :
fuente
Cree un archivo llamado php.ini en la carpeta donde reside su archivo PHP.
Dentro de php.ini agregue el siguiente código (estoy dando un simple error al mostrar el código):
fuente
Aquí hay un script PHP:
Para obtener una explicación más detallada de los errores de PHP, visite Error de PHP - error_reporting () .
fuente
Si, a pesar de seguir todas las respuestas anteriores (o no puede editar su archivo php.ini), aún no puede recibir un mensaje de error, intente crear un nuevo archivo PHP que permita la notificación de errores y luego incluya el archivo del problema. p.ej:
A pesar de tener todo configurado correctamente en mi
php.ini
archivo, esta fue la única forma en que pude detectar un error de espacio de nombres. Mi escenario exacto fue:fuente
Por lo general, iría con el siguiente código en mis proyectos PHP simples.
fuente
Cuando usamos PHP como un módulo de Apache, podemos cambiar los ajustes de configuración utilizando directivas en los archivos de configuración de Apache (por ejemplo, httpd.conf) y archivos .htaccess. Necesitará los privilegios "AllowOverride Options" o "AllowOverride All" para hacerlo.
Mira esto
http://funbird.co.uk/blog/tech-articals/linux-tech-articals/enabling-error-display-php-via-htaccess
fuente
Si de alguna manera te encuentras en una situación en la que no puedes modificar la configuración a través de
php.ini
o.htaccess
no tienes suerte para mostrar errores cuando tus scripts PHP contienen errores de análisis. Entonces tendría que resolver alinear los archivos en la línea de comando de esta manera:Si su host está tan bloqueado que no permite cambiar el valor a través de
php.ini
o.htaccess
, también puede no permitir cambiar el valor a través deini_set
. Puede verificar eso con el siguiente script PHP:fuente
find . -name '*.php' -type f -exec php -l {} \; | grep -v 'No syntax errors detected'
es más simpleComo ahora estamos ejecutando PHP 7, las respuestas dadas aquí ya no son correctas. El único que todavía está bien es el de Frank Forte , mientras habla sobre PHP 7.
Por otro lado, en lugar de intentar detectar errores con un intento / captura, puede usar un truco: use include.
Aquí tres piezas de código:
Archivo: tst1.php
Ejecutar esto en PHP 7 no mostrará nada.
Ahora, intenta esto:
Archivo: tst2.php
Archivo: tst3.php
Ahora ejecute tst2 que establece el informe de errores y luego incluya tst3. Ya verás:
fuente
Puedes hacer algo como a continuación:
Establezca los siguientes parámetros en su archivo de índice principal:
Luego, según sus requisitos, puede elegir qué desea mostrar:
Para todos los errores, advertencias y avisos:
Para todos los errores:
Para todas las advertencias:
Para todos los avisos:
Para más información, ver aquí .
fuente
index.html
?Puede agregar su propio controlador de errores personalizado, que puede proporcionar información adicional de depuración. Además, puede configurarlo para enviarle la información por correo electrónico.
fuente
Este código en la parte superior debería funcionar:
Sin embargo, intente editar el código en el teléfono en el archivo:
fuente
La mejor / fácil / rápida solución que puede usar si se trata de una depuración rápida es rodear su código con excepciones de captura. Eso es lo que estoy haciendo cuando quiero verificar algo rápido en la producción.
fuente
catch (Throwable $e)
es mejor ... u otro bloqueo debajocatch(Error $e)
Solo escribe:
fuente
Eso es lo que aprendí. En el archivo PHP.INI,
fuente
Mientras su sitio esté activo, el
php.ini
archivo debe tener display_errors deshabilitado por razones de seguridad. Sin embargo, para el entorno de desarrollo, display_errors se pueden habilitar para la resolución de problemas.fuente
Puede hacerlo cambiando el archivo php.ini y agregando lo siguiente
O también puede usar el siguiente código, ya que esto siempre funciona para mí
fuente
Si tiene instalado Xdebug , puede anular cada configuración configurando:
fuente
Es posible que desee utilizar este código:
fuente
Informar todos los errores excepto E_NOTICE
Mostrar todos los errores de PHP
Desactiva todos los informes de errores
fuente
En Unix CLI , es muy práctico redirigir solo los errores a un archivo :
Luego, desde otro shell, para cambios en vivo:
o simplemente
fuente
./script
es un script php CLI (hashbang#!/usr/bin/php
). Puede redirigir los errores de php en un archivo de esta manera. Esta es la tubería de Unix. Esto no es PHP como CGI.Si está en la línea de comando, puede ejecutar
php
con-ddisplay_errors=1
para anular la configuración enphp.ini
:fuente
Aparte de la
php.ini
yini_set()
las funciones en un script PHP, puede hacer esto mismo con.htaccess
yhttpd.conf
directivas se muestra a continuación.Algunos proveedores de hosting permiten establecer configuraciones PHP a través de
.htaccess
yhttpd.conf
.Ocultar errores de PHP
encontré esta respuesta buscando en Google un poco
fuente