Clicky

Cómo corregir los PHP Strict Standards

PHP Strict Standards

Las advertencias a las normas estrictas no son errores, son mensajes para los desarrolladores

Informes de errores estrictos (E_STRICT) están causando mensajes de error en Joomla 2.5 y Joomla 3, que son parecidos a "Strict Standards: Non-static method "¦ on line XX". En mi caso particular este es el error en una de las páginas con Joomla 3.3:
PHP Strict Standards:  Only variables should be assigned by reference in, cuando he actualizado PHP en el servidor a la versión 5.4.28

Si el modo de informe de errores de PHP está ajustado a estricto, se puede experimentar los mensajes de error después de la instalación de un paquete de inicio rápido o cuando se navega por un front-end con los módulos instalados. Dado que esto tiene que ver con PHP afectará no sólo a la plantilla y otras extensiones de Joomla, sino también todo lo que se ejecuta en PHP.

¿Por qué aparece este mensaje?

En el php.ini nuestro archivo de configuración actual muy probablemente incluya la línea "error_reporting = E_ALL | E_STRICT", lo que significa que el sistema está reportando errores como avisos. La bandera E_STRICT es utilizada por los desarrolladores; es excesiva para los usuarios regulares y una mala práctica para los "sitios en producción".

Nota: Las advertencias a las normas estrictas no son errores; estos son mensajes para los desarrolladores y los mensajes no deben estar habilitadas en un lugar de producción.

Cómo ocultar el mensaje PHP Strict Standards

Hay unos pocos métodos disponibles para solucionarlo:

Método 1: Usar la configuración de Joomla!

La forma de resolver este problema asumiendo que estás usando Joomla 2.5:

1 Ingresa a tu backend de Joomla como súper administrador.

2 Selecciona en el menú: Sitio -> Configuración Global. Luego haz clic en la pestaña "Servidor" y buscar los parámetros de informe de errores (debe estar en el grupo "Configuración del servidor").
3 Cambiar a "Ninguna".

Joomla 2.5 informe de errores

Si estás ejecutando Joomla 3.x:

1 Ingresa en el back-end de tu sitio Joomla como administrador y selecciona en el menú: Sistema -> Configuración Global.
2 Luego haz clic en la pestaña "Servidor" y busca los parámetros de informe de errores (deben estar en el grupo "Configuración del servidor").
3 Cambia esta opción "Ninguna".

Joomla 3.x informe de errores

Ahora haz clic en el botón Guardar para guardar los cambios y comprueba de nuevo el front-end. Esperemos que todos los mensajes de error hayan desaparecido. De lo contrario, significa que tendrás que modificar el archivo php.ini manualmente, lo que no se recomienda si no eres un usuario con experiencia en desarrollo web.

Método 2: Cambiar la presentación de informes de error php sobre el lado del servidor (php.ini)

También se puede desactivar Strict Standards en nuestro servidor en la configuración de php. Edita tu fichero php.ini (debe estar en la carpeta raíz) y desactiva Strict Standards en tu servidor. El atributo se llama:  error_reporting.

A continuación, tienes que añadir o sustituir este atributo con el siguiente código en php.ini:

error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED

Advertencia: Si recibes cualquier error adicional como el Internal Server Error 500 (también conocido como HTTP error 500) - por favor pide ayuda a tu proveedor de alojamiento para obtener más información sobre cómo y dónde anular los Strict Standards en php.ini, a continuación, comprueba y trata de cambiar de nuevo.

Método 3: Modificar el archivo de plantilla

Si por alguna razón estos dos métodos no están disponibles para ti o no tienes tiempo para ponerte en contacto con el equipo de ayuda de tu alojamiento, puedes utilizar esta solución. En el caso de un template de Gavick, por favor edita: templates/nombre_templa/layout/default.php y añade esta línea en la parte superior de este archivo justo después de la etiqueta <php?:

error_reporting (0);

También puedes tratar de añadir lo siguiente:

ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors','Off');

Método 4: Mediante el archivo .htaccess

Añade estas instrucciones a tu archio .htaccess

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

Jesus_Caceres