Funciones deprecated en php.

Una pregunta sencillita:

Nunca entenderé (hablando de programación web), lo que me pasa ahora:

Primero decir, que tengo desactivadas las actualizaciones de todo tipo de software, dicho esto ¿cómo es posible que ayer me funcionaba bien la web y hoy me salen mensajes "Deprecated" (Deprecated: Function eregi() is deprecated )? ¿como es posible?

Saludos.

1 Respuesta

Respuesta
1

Algo tendrías que haber modificado. Si no fue la versión de tu php, posiblemente la configuración de tu servidor (php.ini) para que arroje estos errores o alertas.

Para corroborar, verifica que la versión que tienes de php no es la ultima, o si ha variado a la que tu tenías como referencia, para así validar que tu versión de php no se ha modificado.

No hay nada como explicarle algo a alguien, para terminar viendo la solución:

Es cierto, no se ha actualizado nada, lo único que introduje fue esta linea al inicio de todo:

error_reporting(E_ALL ^ E_NOTICE);

ahora la he cambiado por esta otra:

error_reporting(0);

De todas maneras, no me parece buena solución, pero que salgan errores en la web mientras los usuarios están en ella, me parece peor, supongo que lo mejor es tener desactivados los errores cuando está la web publicada y activados en tiempo de diseño, de desarrollo ¿no?

¿Cual es tu experiencia al respecto?

Saludos.

Es una practica obligatoria desactivar los errores de la vista del usuario cuando sales de las etapas de desarrollo ya que un error en manos equivocadas puede ser una vulnerabilidad de sistema. Los errores entregan información de un problema y de la infraestructura del sistema (desde conocer un string de conexión, el motor de base de datos que se usa o el nombre de un script que tiene vulnerabilidades).

Para tu caso, es correcto que tienes que esconder los errores en producción pero tu ambiente de desarrollo tiene que mostrarlos y dependerá de ti, actualizar tus versiones para evitar usar funciones sin soporte del fabricante y con problemas de seguridad.

De igual forma, esto tampoco es un "problema nuevo" ya que estas usando esta versión php desde hace un tiempo y este problema ha estado ahí desde que generaste la sentencia php.

Trata de seguir las instrucciones del fabricante y realizar un desarrollo limpio, estas "pequeñas" situaciones, a futuro te pueden traer muchos problemas de magnitud.

Si bueno, ya me pasó eso hace un tiempo con el acceso a mysql, que antes se podía hacer mediante mysql_query ... y a partir de cierta fecha lo cambiaron a mysqli_query ... o mediante objetos ... creo recordar ... es por lo que me puse a buscar cómo desactivar los errores ...

No obstante, ¿las funciones "deprecated" terminan desapareciendo o las mantienen "in eternum" para no causar la "quiebra" de algunas webs?

Las funciones obsoletas mantienen una cantidad de versiones que defina el fabricante en función del riesgo que lleva usarlas, pero independiente de si estarán ahí a futuro, la razón de no usarlas tiene que ver con la seguridad de tu plataforma ya que a la mayoría de estas funciones se les ha detectado problemas de rendimiento o problemas de seguridad que ponen en riesgo tu aplicación o incluso tu servidor completo.

Bueno, la cuestión es tratar de "encapsular" las funciones lo mayor posible, me refiero que aparezcan lo menos posible en el código, p.ej si tienes 20 tablas en la base de datos, no hacer 20 mysqli_query, sino hacer una función que contenga esa instrucción y que todas las consultas pasen por ahí, así los cambios en el código son mínimos, vamos lo que se llama "buenas prácticas".

Saludos y gracias,

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas