Lo que debes hacer es usar los arrays superglobales. Eso te costará un tiempo .. pero lo agradecerá la seguridad de tu aplicación y te harás independiente de la configuración de PHP que use el servidor de turno ..
Cita: Supuestamente en mi servidor debe estar OFF pero no se como se si eso lo puedo cambiar yo o tengo que ponerme en contacto con el servicio tecnico del hosting.
No dés nada por supuesto, lo puedes confirmar tu mismo. Hazte un:
Código PHP:
<?
phpinfo();
?>
Ahí veras toda la configuración de PHP una de ellas la directiva "register_globals".
Cita: Otra cosa que no me funciona es $PHPSESSID, que no contiene nada.
Tengo <?php session_start();?> puesto y en mi servidor si funciona pero en el nuevo no hace nada de nada.
Más de lo mismo referente a "register_globals" .. Realmente es un -peligro- que uses sesiones con las funciones session_register() .. o las accedas de forma global!!!!!.
Por favor adapta tu código:
www.php.net/session
También te va a pasar con variables de servidor tipo $PHP_SELF o similares .. debes usar $_SERVER['nombre_variable']
Cita: Esta es la version del php de mi servidor (donde funciona todo correctamente) : PHP Version 4.3.10
Y esta es la version del servidor nuevo: PHP Version 4.3.10-15
Las versiones dan igual .. es la configuración de PHP lo que afecta al comportamiento de tu código y forma de trabajar variables "externas" en tu caso.
Si no me quieres hacer caso sobre el uso de los arrays superglobales. Puedes usar la función:
ini_set()
www.php.net/ini_set
Para probar a darle valor en tiempo de ejecución en todos tus scripts a esa directiva .. Y sino, contacta con tu proveedor para que te indiquen si puedes usar algún .htaccess o similar para cambiar la configuración de PHP.
También puedes usar la función "extract()" para convertir tus arrays superglobales $_POST .. etc a $variables ...
Un saludo,