Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/07/2004, 07:33
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
El concepto de la sesión en sí no sé si lo tienes claro .. pero si no lo cones bien es por eso que no sabes aplicar las funciones que ves en muchos sitios.

La "sesión" de PHP no es más que un sitio común en el -servidor- donde almacenar las variables (y sus valores) que "registres" en esa sesión. Esa sesión es -única- para el cliente que las crea y se hace el "enlace" entre el cliente (la página(s) que lo creó) y el servidor (hacia el archivo que PHP crea en el servidor) por médio del denominado "SID" (identificador único de sesión).

Ese tal "SID" es imprescindible que tenga que ser propagado en las N páginas (scripts) que interactues bajo tu sesión iniciada.

La propagación del SID puede ser por cookies o por el URL y .. a su vez PHP puede hacer esta propagación del SID por el URL de forma automática sobre-escribiendo tag's HTML de redireccionamiento como: links, formularios, etc ... o lo puedes hacer tu manualmente.

Para que PHP "sepa" que tiene que usar sesiones -siempre- hay que iniciar su uso con session_start() antes de pretender acceder a una variable de sesión. Esa función lo que hace es:
1) verifica si al script en curso le ha llegado un SID válido propagado (sea por el URL o por cookies según configuración de php.ini que definas).
2) si no le llega un SID válido (que exista y/o no ha expirado) .. creará un nuevo SID y en consecuencia un nuevo "archivo" en el servidor para usarlo como "contenedor" de tus variables de sesión.

Por ende .. si el SID no lo propagas correctamente (o se "pierde") o no usas la función session_start() antes de pretender acceder a una variable de sesión .. el SID se generá denuevo y los datos anterioes que puedas haber guardado en esa sesión que se "relaciona" bajo ese SID (algo tipo af89709asdf786asdf09) ya no será accesible.

Te hago todo este comentario sober el "SID" a nivel de teoría .. por qué cuando empieces a probar ejemplos sobre sesiones que veras y no te funcionen .. el 99.9% de casos suele ser que el "SID no se ha propagado". Por eso es importante que -sepas- (ver tu phpinfo() sección sesiones) como propagas el SID .. por qué así será como tienes que "programar" tu uso de sesiones en tus aplicaciones y evitar problemas.

Con esto debe quedarte claro como funciona una sesión .. así que el resto lo puedes ver en la documentación oficial de PHP sobre sesiones donde veras como "registrar" una variable en una sesión y como leer lo que guardes en ella usando los "arrays" superglobales (en las FAQ's de este foro de las primeras hay ejemplos ..)

www.php.net/session

Para que no digas que "mucho blabla y poco ejemplo":
http://www.forosdelweb.com/f18/paso-variables-entre-archivos-php-213948/

Ahí tienes exactamente resuelta tu pregunta.

Un saludo,