Foros del Web » Programando para Internet » PHP »

register_globals = off + variables variables

Estas en el tema de register_globals = off + variables variables en el foro de PHP en Foros del Web. Que tal, me pregunto si alguien sabe que tiene que ver el poner la variable register_globals = off/on en el php.ini con el uso de ...
  #1 (permalink)  
Antiguo 21/07/2004, 11:08
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
register_globals = off + variables variables

Que tal, me pregunto si alguien sabe que tiene que ver el poner la variable register_globals = off/on en el php.ini con el uso de variables variables en un script.

Resulta que solía tener mi variables en on porque desde siempre así habia trabajado, ahora que decidí cambiarla a off para poner un poco de seguridad en los programas, las variables variables que tengo no me las reconoce el script, tengp algo como.


for($i=1;$i<=4;$i++)
{
$junta = "tipoobjeto_$i"; //asi se llaman nuestros objetos
$tipo = $$junta;//hacemos una variable variable para poder acceder a su contenido
$cadena="$cadena $tipo";
print" <td width=50%><div align='center'>
<p>La Opcion elegida fue $tipo </p>";

Si la variable esta en on, los $tipoobjeto_1 ..... $tipoobjeto_4 si se muestran, pero si la variable esta en off, no se muestran y me sale un error de que las variables son no definidas.

Alguien sabe porque, cual es la relación???

Saludos!
  #2 (permalink)  
Antiguo 21/07/2004, 11:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cuando register_globals = OFF .. no puedes asumir las variabels externas de tu script como globales (como las accedes: $tipoobjeto ...) sino que debes accederlas por el array superglobal asociado al método que llegan esas variables al script .. ya sea el que definas en tu formulario en el "method" (GET/POST) o si es por el URL por donde llegan esas variables .. será GET. (Lo mismo es aplicable si son variables de sesión, cookies .. etc)

Así que si quieres usar "variables variables" con register_globals a OFF tendras que hacer:

$$_POST['tipoobjeto']."_4";

(si no me equivoco .. )

Deberías usar SIEMPRE (que uses PHP 4.1.0 o superiro) los arrays superglobales, por qué eso te hace ser independiente de la configuración de PHP y su register_globals a ON o a OFF además de ganar en seguridad tus aplicaciones.

Realmente para lo que estás haciendo perfiero asumir como Arrays los elementos del formulario según puedes ver en esta FAQ que explica el método:

http://www.forosdelweb.com/showthrea...710#post518710

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:07.