EDIT:
HOLA!!! ya agregue el $_GET["idiomaUser"] y si me funcionoo!!
Muchas gracias, me puedes decir por que debo prgoramar con registres globals desactivado??
Muchas gracias
Register_globals controla la registración automática de variables. Cuando Register_globals está activado (on) las variables superglobales automáticamente se registran como variables de usuario de forma tal que si PHP detecta pase de parámetros GET o POST crea esas variables ahorrándote tener que crearlas tú. Por ejemplo si tienes un script PHP tal como test.php y lo invocas pasándole parámetros tal como
http://example.com/test.php?variable=valor PHP creará automáticamente una variable $variable y le asigna el valor "valor". Esto podría ser cómodo para el programador pero implica un agujero de seguridad pues considera este código:
[php:14ut78ds]
-
- if ($loggin == true) {
- echo "Mostrar mensaje secreto";
- }
-
[/php:14ut78ds]
$loggin al no estar inicializado a ningún valor específico se presta para que un usuario malicioso le ponga un valor invocando el script con parámetros ?loggin=1 (1 evalua true, por lo tanto el if es verdadero).
Por el contrario con register_globals apagado (off) esto no ocurre y tienes que tomar los parámetros GET y POST explícitamente usando las variables superglobales $_GET y $_POST. En el ejemplo anterior con register_globals en off tendrás un aviso de variable no definida aún cuando se invoque el script con parámetros con el mismo nombre.
Cuando se dice que se debe programar como si register_globals estuviera en off se quiere decir que inicialices todas las variables explícitamente y no asumas que PHP las inicializará por ti. ¿Se entiende?.