Foros del Web » Programando para Internet » PHP »

sesiones

Estas en el tema de sesiones en el foro de PHP en Foros del Web. Como estan, Estoy trabajando con clases para el desarrollo de un sistema en php y mysql En mi clase inicializo mi sesion solamente colocando session_start(); ...
  #1 (permalink)  
Antiguo 09/01/2003, 10:52
 
Fecha de Ingreso: noviembre-2002
Mensajes: 33
Antigüedad: 15 años
Puntos: 0
sesiones

Como estan,

Estoy trabajando con clases para el desarrollo de un sistema en php y mysql
En mi clase inicializo mi sesion solamente colocando session_start();
Cuando el usuario se conecta al sistema colocando su login y password, mando a la siguiente funcion para registrar mi sesion:
$result=mysql_query("select * from usuario where user='$u' and pass='$pas'");
if (filas > 0){
$dato=mysql_fetch_object($resul); $usuarioSESS=array("id"=>$dato->id,"name"=>$dato->name,"session"=>session_id());
$session_register("usuario");
return 1;
}
Como podran ver defino mi variable de sesion como un arreglo donde contiene los datos del usuario q se conecta.
en cada pagina siempre pregunto:
if (session_is_registered("usuario")){
// true
//saco un mensaje
echo "Bienvenido usuario:".$usuario["name"];
}else{
//no se conecto
echo "No tiene acceso.";
}
Con la 1era pagiana funciona bien sale el mensaje el problema es cuando pasa del mensaje de conexion a otra pagina cuando pido el valor de $usuario["name"] ya no existe y necesito este valor para interactuar con la base de datos.
Si alguien puede ayudarme les estare muy agradecido, estoy trabajando con php y mysql for windows.
Saludos
  #2 (permalink)  
Antiguo 09/01/2003, 11:06
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 15 años
Puntos: 0
por lo que tengo entendido, session_register() debes ser llamado antes de session_start(), talvez tu error esta en eso y estas llamandola despues.

Saludos
  #3 (permalink)  
Antiguo 09/01/2003, 11:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cuando pongas código PHP en el foro usa preferentemente el boton "PHP" para colocar código (se verá y apreciará mejor tu código).

Te faltó:

Código PHP:
session_start(); // iniciar uso sessiones.
if (session_is_registered("usuario")){
// true
//saco un mensaje
echo "Bienvenido usuario:".$usuario["name"];
}else{
//no se conecto
echo "No tiene acceso.";

A todo esto .. usando session_register() .. los arrays que guardas en la session son Automaticamente serializados .. (cosa que tienes que tener presente ..). (si se usa el array superglobal esté proceso hay q hacerlo a mano via serialize() / unserialize() ).

El uso de sessiones que haces no es el mas optimo ... Si usas PHP 4.1.x en adelante te recomendaría que usases el array superglobal $_SESSION .. tanto para registrar variables de sesision como para leer su valor.

Podrias ver si lo deseas las FAQ's de PHP ahí tienes una FAQ sobre el tema de uso de sessiones.

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 17:10.