Foros del Web » Programando para Internet » PHP »

register_globals y arrays

Estas en el tema de register_globals y arrays en el foro de PHP en Foros del Web. Estaba probando mi pagina con register_globals a off y no encuentro mayores dificultades excepto por el paso de arrays, por ejemplo: <?php session_start(); session_register('var'); ?> ...
  #1 (permalink)  
Antiguo 27/07/2003, 20:51
 
Fecha de Ingreso: julio-2003
Ubicación: Buenos Aires
Mensajes: 96
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta register_globals y arrays

Estaba probando mi pagina con register_globals a off y no encuentro
mayores dificultades excepto por el paso de arrays, por ejemplo:

<?php session_start();
session_register('var'); ?>
<html><head><title>Title here!</title></head>
<body>
<?php $var=$HTTP_GET_VARS['var'];
$nuevo=$HTTP_GET_VARS['nuevo']; //devuelve un string

if (isset($var)==0) {
$nuevo=Array();
$nuevo[]='uno';
$nuevo[]='dos';
$nuevo[]='tres';
}
else {
echo 'gettype '.gettype($nuevo).'<br>';
echo count($nuevo).' elementos';
echo 'aqui uno : '.$nuevo[1];
}
echo '<br><a href="ejemplo.php?var=algo&nuevo='.$nuevo.'">link</a>';?>
</body>
</html>

probe con $nuevo=Array($HTTP_GET_VARS['nuevo']); pero ahi lo que hace es crear el
array de nuevo (creo)...
  #2 (permalink)  
Antiguo 27/07/2003, 21:39
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Bueno, creo que lo que pasa es que el registro de la variable debe ocurrir DESPUES de asignarle valor a dicha variable, pero yo te recomiendo un camino mas facil y rapido...

$_SESSION["var"]=$_GET;


Pruebalo y me dices
__________________
Manoloweb
  #3 (permalink)  
Antiguo 28/07/2003, 03:31
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El paso de arrays no tiene que ver con el register_globals. Mira en esta FAQ http://www.forosdelweb.com/showthrea...072#post262072 como pasar arrays.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 28/07/2003, 08:03
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Pues para pasarlos por sesion no es necesario serializarlos ni nada por el estilo...

Es suficiente con la linea que puse.

$_SESSION["var"]=$_GET;

Luego, todas las variables de $_GET se pueden sacar así...

$_SESSION["var"]["seccion"]
$_SESSION["var"]["ID"]
$_SESSION["var"]["tal"]


__________________
Manoloweb
  #5 (permalink)  
Antiguo 28/07/2003, 08:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bueno, lo que quise decir es que si quiere pasar arrays por GET o por POST en una sola variable, debe usar el codigo de las FAQs. Ahi casos en los que no puedes usar la sesion, como por ejemplo mandar datos de un domino a otro.

Y por cierto, creo que cuando lo metes en una sesion PHP lo serializa automagicamente en tu lugar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 28/07/2003, 12:47
 
Fecha de Ingreso: julio-2003
Ubicación: Buenos Aires
Mensajes: 96
Antigüedad: 20 años, 9 meses
Puntos: 0
pido disculpas pero realmente estoy mas perdido que antes:

>$_SESSION["var"]=$_GET;
"var" es el nombre de la sesion?

>$_SESSION["var"]["ID"]
"ID" es una variable de sesion? de ser asi como accedo a un elemento de un array?

>por si algo faltaba, cuando intento usar las funciones para /serializar/desserializar/ directamente me dice no las conoce...
uso php version 4.1.1

>El paso de arrays no tiene que ver con el register_globals...
sucede que los errores aparecieron cuando deshabilite esa opcion.

disculpen mi poca idea y gracias por sus respuestas
  #7 (permalink)  
Antiguo 28/07/2003, 14:47
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Je je...

["var"] es un nombre de ejemplo, tal como $var=$HTTP_GET_VARS['var'];

["seccion"], ["ID"], etc... son ejemplos de las variables que pudieras tener en tu querystring...


pagina.php?seccion=1&ID=12&tal=azul


Si en pagina.php tu tuvieras una linea como esta:

$_SESSION["var"]=$_GET;

Entonces, en cualquier otra pagina puedes recoger los valores como te lo puse...


$_SESSION["var"]["seccion"]
$_SESSION["var"]["ID"]
$_SESSION["var"]["tal"]




Recuerda que aqui en los foros solemos usar nombres genericos para referirnos a las cosas de tus scripts que no conocemos...

Por ejemplo:



$talcosa; (nos referimos a una variable)

SELECT * FROM tutabla (nos referimos la tabla que tu uses)

number_format("123456.123") (nos referimos a cualquier numero)

home/tudir/tal/imagen.jpg (nos referimos al path que tu uses, y a una imagen cualquiera)


ETC, ETC, ETC...


Recuerda que nosotros no tenemos tu codigo enfrente para poder saber como se llaman tus elementos, ni sabemos que es exactamente lo que vas a hacer como para proponer nombres correctos. Aqui simplemente te damos ideas, y es tu tarea adaptarlas a tu script.


Saludos!

__________________
Manoloweb
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 06:20.