Tienes una web en PHP funcionando perfectamente y tienes que pasarla a otro servidor, pero resulta que en el nuevo servidor, aunque la web carga, aparece un error similar a este:
Notice: Undefined variable: HTTP_GET_VARS in /var/www/web/fichero.php on line 298
El problema es que el servidor no reconoce la variable HTTP_GET_VARS. El uso es de este tipo de variables está obsoleto, por lo que debemos modificar nuestro código sustituyendo todas estas variables por estas otras:
- $HTTP_POST_VARS por $_POST
- $HTTP_GET_VARS por $_GET
- $HTTP_SERVER_VARS por $_SERVER
- $HTTP_SESSION_VARS por $_SESSION
- $HTTP_POST_FILES por $_FILES
- $HTTP_COOKIE_VARS por $_COOKIE
- $HTTP_ENV_VARS por $_ENV
Así, por ejemplo, el código quedará de esta manera al cambiar HTTP_GET_VARS por _GET:
$HTTP_GET_VARS['PHP_SELF'];
Pasa a ser:
$_GET['PHP_SELF'];
Esa sería la forma recomendable, pero si no podemos modificar el código, podemos modificar la configuración PHP del servidor para que reconozca las variables obsoletas (esto solo es posible para versiones de PHP anteriores a la 5.3) poniendo a On la opcion register_globals register_long_arrays, de una de las siguientes maneras:
- desde las opciones de PHP del panel de nuestro hosting (cpanel, plesk, ispconfig...)
- desde el archivo php.ini, tras lo que tendriamos que reiniciar Apache
- añadiendo al archivo .htaccess de la raiz de la web la línea php_flag register_long_arrays = On
Solo restaría regresar a la web y comprobar si el error ha desaparecido.
Más información: