Foros del Web » Programando para Internet » PHP »

Sesiones en PHP

Estas en el tema de Sesiones en PHP en el foro de PHP en Foros del Web. En una página .php registro una varible de sesion con: $usuario=$login; sessione_register('usuario'); Muy típico... En la página siguiente a la que se accede, para leer ...
  #1 (permalink)  
Antiguo 29/01/2002, 10:09
 
Fecha de Ingreso: enero-2002
Mensajes: 97
Antigüedad: 15 años, 11 meses
Puntos: 0
Sesiones en PHP

En una página .php registro una varible de sesion con:

$usuario=$login;
sessione_register('usuario');

Muy típico...

En la página siguiente a la que se accede, para leer esta variabled de session $usuario, antes tengo que hacer session_start(); sino no me encuentra $usuario. Por hacer session_start() me inicia otra sesión (lo se porque me la crea en el directorio de sesiones) por lo que tampoco encuentra $usuario que estaba registrada en la sesión anterior.

Me gustaría que alguien me guiara un poco sobre este tema. Algo estoy haciendo mal, ¿qué estoy haciendo mal?
  #2 (permalink)  
Antiguo 29/01/2002, 10:28
 
Fecha de Ingreso: enero-2002
Mensajes: 97
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Sesiones en PHP

Tengo otra pregunta:

¿Las sesiones se pierden si entre dos páginas .php vas a una .html? Puede que este sea el error que estoy cometiendo.

GRACIAS.
  #3 (permalink)  
Antiguo 29/01/2002, 15:48
 
Fecha de Ingreso: enero-2002
Mensajes: 11
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Sesiones en PHP

Que tal!

Esto deberia funcionar:
pagina1.php
-----------
session_start();
$user = "me";
session_register("user");

pagina2.php
------------
session_start();
echo $user; //Deberia mostrarte el contenido de la variable

Sobre tu segunda pregunta de que si se pierde la sesion la respuesta es NO, al menos eso Yo no lo creo, espero que esto te sirva.

Trabajar, trabajar y trabajar!

Luis López
[email protected]
  #4 (permalink)  
Antiguo 01/02/2002, 14:19
 
Fecha de Ingreso: febrero-2002
Mensajes: 27
Antigüedad: 15 años, 10 meses
Puntos: 1
Re: Sesiones en PHP

No me gusta el sistema se sesiones de PHP así que te comento que implementar uno es muy fácil.

Cuando se cree un usuario haces algo como esto.
---------------------
# identificacion única
srand((double)microtime()*1000000);
$base = rand().time().$usuario;
$id_unica = md5($base);

$idfichero = $directorio_de_las_sesiones.$id_unica.".ses&q uot;;

# Abrimos el fichero de datos para escritura
$fp = fopen($idfichero, "w");
fwrite($fp, $datos);
fclose($fp);
-----------------
Ahora ya tienes un fichero con la información que necesitas.
-----------------
Pasa este ID por los enlaces como "enlace?ID=$id_unica" y en las páginas que necesites información usa algo como que así:
-----------------
function sesion($ID)
{
global $directorio_de_las_sesiones;
/* lees y devuelves lo que quieras */
}
-----------------
A mi me gusta más este sistema y puedes darle más funcionalidad que a la sesión que da PHP. Yo tuve problemas con las sessiones porque mi HP tiene muchos frames.
  #5 (permalink)  
Antiguo 01/02/2002, 18:00
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Sesiones en PHP

el sistema de sesiones del php es muy solido, el problema es del lado del browser, muchos browsers identifican a cada frame como un navegador distinto, por ende el web server no recibe las cookies correspondientes, y eso es el problema basicamente, se puede solucionar cambiando el metodo de propagacion de la sesion (de cookies a get) o pasando por get el PHPSESSID (o el nombre con el que este configurado en el php.ini).

saludos
  #6 (permalink)  
Antiguo 02/02/2002, 04:47
 
Fecha de Ingreso: febrero-2002
Mensajes: 27
Antigüedad: 15 años, 10 meses
Puntos: 1
Re: Sesiones en PHP

Gracias por la información. Supongo que es una cuestión de estilo. Me gusta hacer las cosas a mi modo y de un modo portable. hoy será PHP y mañana PHPX o cualquier cosa. De mi modo no me cuesta nada adaptar esto a otro lenguaje.
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 09:36.