Foros del Web » Programando para Internet » PHP »

Sesiones y $_SESSION['loquesea']=$loquesea;

Estas en el tema de Sesiones y $_SESSION['loquesea']=$loquesea; en el foro de PHP en Foros del Web. Hola. Solo una pregunta.. ¿es siempre necesario declarar en cada página $_SESSION['loquesea']= $loquesea; cuando register_globals está en ON ON?. O basta con hacerlo una vez ...
  #1 (permalink)  
Antiguo 21/02/2005, 10:08
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Sesiones y $_SESSION['loquesea']=$loquesea;

Hola.

Solo una pregunta.. ¿es siempre necesario declarar en cada página
$_SESSION['loquesea']= $loquesea; cuando register_globals está en ON ON?.

O basta con hacerlo una vez y la variable se transmite de página a página. (Ya sé que el valor puede cambiar)


Gracias
  #2 (permalink)  
Antiguo 21/02/2005, 12:05
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 21 años, 10 meses
Puntos: 6
Una vez que le pusiste un valor en $_SESSION o en la variable que declaraste al iniciar la session se mantiene en todas las paginas, pero siempre tenes que declararla como global $MISESSION (para aquellas variables que declaraste).

Suerte
  #3 (permalink)  
Antiguo 21/02/2005, 14:08
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Esto es lo que no domino

Gracias lalogrosz por tu respuesta.

Te pediría un favor:

¿Me podrías decir cómo hay que declarar como global $MISESSION?

Imagino que hay que dar un nombre a la sesion y declararla, pero ¿cómo y donde?.

Yo de momento hago $_SESSION['loquesea']= $loquesea; en cada página y funciona bien, pero no lo veo demasiado correcto.

Por otra parte, el tema de las sesiones de da terror. Por eso me gustaría alguien me dijera cómo y dónde se declara global una variable de sesion.

Tengo register_globals en ON ON y propago el sid por cookie por defecto.

Gracias por anticipado.
  #4 (permalink)  
Antiguo 21/02/2005, 14:15
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 21 años, 10 meses
Puntos: 6
tenes que poner esto
Código PHP:
session_register('NOMBRE'); 
en cada pagina la tenes que declarar como global $NOMBRE, asi de esta manera podes crear tantas como quieras.
Lo que no entiendo para que utilizas $_SESSION['loquesea']= $loquesea en cada pagina si igual en cada pagina la estas seteando.

Suerte
  #5 (permalink)  
Antiguo 21/02/2005, 14:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Cita:
Iniciado por lalogrosz
tenes que poner esto
Código PHP:
session_register('NOMBRE'); 
en cada pagina la tenes que declarar como global $NOMBRE, asi de esta manera podes crear tantas como quieras.
Pues esta manera de hacerlo es ya obsoleta y el manual recomienda dejarla. También recomienda no mezclar llamadas a session_register() con el superglobal $_SESSION.

Para utilizar variables de sesión:
- Siempre tienes que utilizar session_start() al comienzo de cada página que utilizará variables de sesión.
- Para guardar una variable en la sesión simplemente asignas $_SESSION['variable']="valor"; (ya no utilices session_register(), porque no es necesario)
- Para leer el valor de una variable de sesión también accedes directamente por $_SESSION['variable'].
- Para eliminar una variable de la sesión puedes hacer como con cualquier variable unset($_SESSION['variable']);
- Para eliminar una sesión completa se recomienda re-setear el array $_SESSION como un array vacío. O sea $_SESSION=array() y luego utilizar session_destroy().

Eso es todo. Como te digo, ya no utilices session_register() ni session_unregister() para registrar o quitar variables de la sesión.
De la manera en que lo he puesto, no importará si tienes activada o no la directiva register_globals... funcionará igual.

Saludos

Última edición por jpinedo; 21/02/2005 a las 14:45
  #6 (permalink)  
Antiguo 21/02/2005, 16:03
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Por fin lo entendí

Gracias.

He estado dándole vueltas a lo que dice lalogrosz, a quien le agradezco mucho su interés, pero no acababa de verlo claro porque sabía que no era necesario registrar la sesion.

Tu explicación es justo lo que necesitaba. Clara y directa.

De esta forma las sesiones parece que sean hasta fáciles de dominar.

Yo creo que en el tema de las sesiones el problema está en que muchos nos hacemos unos líos enormes con cosas que vemos programadas con sistemas antiguos, con lo de register_globals en ON o en OFF, etc, etc.

El problema está en que cuando a alguien le funcionan bien los scripts, para él es la forma en que hay que hacerlo. Es lógico. Pero la cuestión es que te pones a leer faqs y scripts hechos de distintas formas y es cuando te armas un lío.

Un tutorial actualizado de sesiones sería un "best seller". ¡A ver si os animais!

Gracias a todos.
  #7 (permalink)  
Antiguo 21/02/2005, 18:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Por lo pronto puedes ver el manual:
http://www.php.net/session

Saludos
  #8 (permalink)  
Antiguo 21/02/2005, 18:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y leer las FAQ's de este foro, hay una (de las primeras con vinculo a otra del tema) que explica un sencillo ejemplo de uso y tienes otra "teórica" para que sepas "por qué" funcionan si es que te van "a la primera" y tambien para que sepas por què no funcionan cuando no van los ejemplos comunes a la primera:

En general .. esto de entender las sesiones pasa por 3 fases:
1) leer la teorìa .. saber como funcionan y que configuraciòn (importantisimo) afecta al uso de las sesiones.
2) probar ejemplos
3) preguntar dudas concretas ..

Te puedo asegurar que las "sesiones" no son nada complicadas, eso sì .. si vas "al grano" con ejemplos .. nunca sabras por ejemplo de la existencia del termino del "SID" (Identificador ùnico de sesiones) y que es "la madre" del mal o buen funcionamiento de las sesiones. De su "propagaciòn" depende su uso .. y .. no sè por què -nadie- se dá la molestia de entender (lease: leer la documentación oficial) que es eso y como se usa. Para las dudas .. aquì estamos para que entre todos aprendamos y podamos resolverlas.

Otro detalle màs general es tener cierta "visión" para entender que si te dicen que uses los arrays superglobales como puede ser $_SESSION .. al fin y al cabo no es mas que un array (arreglo) màs comùn y corriente .. eso sì con sus detalles pròpios, pero en el fondo se comporta como un array màs, por eso como jpinedo explica puedes aplicar funciones como unset() para "borrar" una variable de sesiòn .. o simplemente "declarar" una variable de sesión como si usases un array comùn o bien leerla.

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 21:40.