UnDomain Un friki suelto por la red

Error "Function ereg() is deprecated" en Drupal 6.x con PHP 5.3


Actualmente estoy intentando hacerme un portal wiki portátil (en mi pendrive) usando XAMPP y Drupal, y me he encontrado con una desagradable sorpresa.

Resulta que Drupal 6.x usa el comando ereg(), el cual está "desfasado" en la versión 5.3 de PHP.
Esto hace que si instalas Drupal 6.x con esta versión de PHP no parará de aparecerte el siguiente mensaje de error:

error message on Drupal, Function ereg() is deprecated ... file.inc on line 895

De momento, este error lo tienen registrado, pero no hay nada todavía para solucionarlo.
La primera solución recomendada es reemplazar el comando ereg() por preg_match() en el fichero includes/file.inc, pero si se hace esto, dejará de funcionar por una diferencia en los parámetros del comando. Así que esta solución queda descartada y nos quedamos con el problema entre manos.

Pero no todo es gris en el cielo, lo que podemos hacer es una pequeña chapucilla para salir del paso temporalmente....

En el fichero includes/common.inc buscamos esta línea (está en la fila 590)
if ($errno & (E_ALL ^ E_NOTICE)) {

y la reemplazamos por la siguiente línea

if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {

Con esto conseguimos que los mensajes de alerta sobre comandos "desfasados" dejen de tocar la moral... pero claro, eso son TODOS los mensajes de TODOS los comandos desfasados…
No es una solución definitiva, ya que con la siguiente versión de PHP se eliminará el comando, pero al menos, nuestro sitio se mantendrá limpio de mensajes feos :P

Fuente:
Kinetic Klink

Pues a mi este arreglillo no

Pues a mi este arreglillo no me funciona...

Más ideas?, pq ahora mismo voy dando palos de ciego.

Lo he conseguido. Añadiendo

Lo he conseguido.

Añadiendo ini_set('error_reporting', 4096); al settings.php en la sección de los ini_set

Gracias igualmente...

Gracias... Esta ha sido lo

Gracias...

Esta ha sido lo que me ha solucionado el problema con Drupal 6.17
ini_set('error_reporting', 4096);

Un Saludo
JOCh

Lamento que no te funcione...

Lamento que no te funcione... a mi me funcionó para dejar de ver las alertas.
De todas maneras, el Drupal 6.x con el PHP 5.3 se llevan a patadas :P
Esperemos que lo actualicen pronto....

Muchas gracias por el comentario y por el aporte :)

La solución que he encontrado

La solución que he encontrado es poner en la linea de c:\php\php.ini numero 354
error_reporting = E_ALL |E_DEPRECATED

Espero que le sirva a alguien

¡Feliz año 2010!

Morcock muchisimas gracias es

Morcock muchisimas gracias es la solucion que he probado y funciona correctamente. Gracias a todos por compartir su conocimiento.

HOLA MI NOMBRE ES LUCAS..

HOLA MI NOMBRE ES LUCAS.. BUSCANDO INFORMACION SOBRE DRUPAL ENCONTRE TU PAGINA.

Como no tngo mucha idea de drupal.. queria saber una cosa.

Tengo un menu creado en enlaces primarios, y quiero que al estar activos tengan un estilo. solo he podido cambiar el boton inicio con un modulo. menu trails pero desconozco como hacerle eso a cada uno de los demas links. espero q a pesar de mi intromicion con un comentario q no tiene nada q ver con tu post... si sabes me contestes.Gracias...

Yo tampoco es que sea un gran

Yo tampoco es que sea un gran experto en Drupal, pero mes da que lo que quieres hacer lo tienes que controlar por CSS. Es decir, toquetear el theme que tienes para modificar el estilo de los botones.

Algunos themes ya lo hcen de por si, así que te recomendaría que miraras si algo hace lo que tu quiere, ya sea para ver como lo hacen, o para partir de ese theme para hacerte el tuyo propio.

Gracias por el comentario y espero que al menos mi repuesta sea de alguna utilidad ;)

Gracias por la ayuda. Sólo

Gracias por la ayuda.

Sólo añadir un par de detalles:

En una máquina debian, ubuntu o por el estilo, el php.ini (WIN: c:\php\php.ini) está en "/etc/php5/apache2"
En una red hat o similares en /etc

Otra cosa importante a tener en cuanta para entornos de producción es lo que sigue:

ini_set('display_errors', 1);
ini_set('error_reporting', 4096);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

Se ha de buscar por todos los archivos de configuración de errores del sitio, pues usa el último que encuantra en el código.

gracias de nuevo.

Mientras tanto, en "¿Alguien ha visto mi martillo?"...


Inicio de sesión


Todo el contenido mostrado ha sido obtenido libremente por la red. Las marcas indicadas son propiedad de sus legítimos dueños y se muestran a modo informativo de manera libre y voluntaria, sin intención publicitaria ni ánimo de lucro. Todo el material propio, y salvo que se indique lo contrario, se encuentra bajo licencia Creative Commons. Si tienes el Copyright de algún contenido o has detectado algna anomalia, por favor, infórmalo al correo undomain@gmail.com para ser corregido cuanto antes. El autor de esta Web no se hace responsable del contenido de terceras personas y de sites ajenos a este.

Powered by Drupal, an open source content management system