No es un error, sólo un aviso. Por eso funciona.
Según el
manual:
Cita: Depender del valor predeterminado de una variable sin inicializar es problemático al incluir un archivo en otro que use el mismo nombre de variable. También es un importante riesgo de seguridad cuando la opción register_globals se encuentra habilitada. Un error de nivel E_NOTICE es emitido cuendo se trabaja con variables sin inicializar, con la excepción del caso en el que se anexan elementos a un array no inicializado. La construcción del lenguaje isset() puede ser usada para detectar si una variable ya ha sido inicializada.
Entonces lo suyo es declarar las variables o arrays antes de referenciarlos, o al menos usar
isset() para comprobar que existen.
Si antes no te ocurría y ahora si, será porque se cambió la configuración de PHP para mostrar
E_NOTICE. Si quieres evitarlo, puedes declarar en tu fichero:
Más info:
http://www.php.net/manual/es/errorfu...figuration.php
Como ves el propio manual recomienda tenerlos activados, al menos en el entorno de desarrollo. En producción luego realmente no interesará mucho.