Foros del Web » Programando para Internet » PHP »

Problemas en sessiones

Estas en el tema de Problemas en sessiones en el foro de PHP en Foros del Web. Hola me gustaria saber como poder controlar las sessiones. 1. En la tabla usuario de mi bd tengo una columna estado (0 o 1) que ...
  #1 (permalink)  
Antiguo 06/08/2011, 18:17
 
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 10 meses
Puntos: 1
Problemas en sessiones

Hola me gustaria saber como poder controlar las sessiones.

1. En la tabla usuario de mi bd tengo una columna estado (0 o 1) que sirve para que un usuario que ya esta logeado no ingrese desde otra pagina, pero digamos de que haya un problema y se le apague la pc, como no cerro sesion su estado seguira siendo 1 y no podra volver a loguearse, ¿como lo solucionaria?

2. al cerrar un navegador que se pueda destruir la session de php y ademas el estado cambie en la bd.


espero que me puedan ayudar , gracias
  #2 (permalink)  
Antiguo 06/08/2011, 18:29
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problemas en sessiones

Pues a ambas cuestiones te recomendaría que usases la función time() para que se actualize el estado, es decir, algo como esto: "1-11923591", y crear una función que tenga en cuenta esa cifra, para que cuando pase X tiempo pueda actualizar el estado a 0.

Es casi el mismo funcionamiento que un módulo que chequea los usuarios que hay online en la página.
  #3 (permalink)  
Antiguo 06/08/2011, 21:20
 
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas en sessiones

gracias por responder, pero de que serviria una funcion time en el caso de q haya un apagon por ejemplo y entonces la bd nunca cambio a 0 :S
  #4 (permalink)  
Antiguo 06/08/2011, 21:59
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Problemas en sessiones

He ahí la función.
Tienes que almacenar en la BD la última actividad... Cuando quiera iniciar sesión, restas la última actividad a la fecha actual, si es mayor a X tiempo, pones la BD en 0 y permites el inicio...
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 07/08/2011, 15:52
 
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas en sessiones

Código:
    Eventeo     tiempo    restTiemp estado  sgteEstad   permiso   
-------------   ------    --------- ------  ---------   -------
primer inicio   115000                 0        1         si
abre pagina 2   115010                 1        1         si
abre pagina 5   115040                 1        1         si
(sucede apagon)
inicia sesion   115150     110(>70)    1        0         si (permite iniciar sesion)
abre pagina 3   115160                 1        1         si
inicio sesion2  115170     10(<70)     1        1         no (no permite el iniciar sesion de otro usuario


tiempoX:70
esto implicaria digamos en cada pagina q uno abra se haga un llamado a la bd no?... esto no haria hacer mas lento una consulta a medida de varios usuarios en linea ?
  #6 (permalink)  
Antiguo 07/08/2011, 16:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 16 años, 2 meses
Puntos: 10
Respuesta: Problemas en sessiones

Cita:
Iniciado por xdunkelheitx Ver Mensaje
Hola me gustaria saber como poder controlar las sessiones.
La mejor manera de aprender a controlar las sessions es que busques info sobre las mismas, no es un tema muy complejo, en 15 minutos ya vas a ser todo un experto.

Cita:
Iniciado por xdunkelheitx Ver Mensaje
1. En la tabla usuario de mi bd tengo una columna estado (0 o 1) que sirve para que un usuario que ya esta logeado no ingrese desde otra pagina
O no entendí lo que querés hacer o no tiene sentido. Normalmente las sessions se usan para que el usuario pueda ingresar a otras paginas si esta logeado (opuesto a lo que quieres hacer).

Cuando el usuario se logea correctamente, se genera la session, supongamos que la variable de session lleva hora y fecha, cuando el usuario accede a una pagina se controla si existe la session y de existir que no haya pasado demasiado tiempo, por ejemplo 12 horas. Si eso se cumple, se le permite acceder a la pagina, sino, se carga la pagina de login.

No es necesaria ninguna bd de por medio...
  #7 (permalink)  
Antiguo 07/08/2011, 16:27
 
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas en sessiones

Cita:
Iniciado por LhaN Ver Mensaje
La mejor manera de aprender a controlar las sessions es que busques info sobre las mismas, no es un tema muy complejo, en 15 minutos ya vas a ser todo un experto.


O no entendí lo que querés hacer o no tiene sentido. Normalmente las sessions se usan para que el usuario pueda ingresar a otras paginas si esta logeado (opuesto a lo que quieres hacer).

Cuando el usuario se logea correctamente, se genera la session, supongamos que la variable de session lleva hora y fecha, cuando el usuario accede a una pagina se controla si existe la session y de existir que no haya pasado demasiado tiempo, por ejemplo 12 horas. Si eso se cumple, se le permite acceder a la pagina, sino, se carga la pagina de login.

No es necesaria ninguna bd de por medio...
la bd se usa en el caso de que se logee en dos pc o mas ... es decir, restringir el acceso
  #8 (permalink)  
Antiguo 07/08/2011, 16:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 16 años, 2 meses
Puntos: 10
Respuesta: Problemas en sessiones

Manejalo con sessions tambien... es decir:
Si se loguea en maquina A una variable session con un codigo aleatorio que se guarda en la base de datos. Si intenta logearse en una maquina B, ya sea que el codigo sea diferente o no exista en las sessions, entonces le indica si quiere cerrar la otra sesion que abrio en la otra maquina, si el usuario pone que si, nueva session con valor aleatorio y reemplazas el valor de la bd.
  #9 (permalink)  
Antiguo 07/08/2011, 18:08
 
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas en sessiones

gracias por responder,bueno esta bien la idea, pero como podria saber la cantidad de usuarios en linea y quienes?.
  #10 (permalink)  
Antiguo 07/08/2011, 18:54
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: Problemas en sessiones

puedes hacerlo con bd....osea una tabla que guarde si el usuario esta logeado si o no..osea un campo llamado logeado alli pones si o no...para saber cuantos estan logeados solo puedes usar la funcion de mysql_num_rows de mysql y ves todos los registros logeados....y muy buena la idea del usuario de mas arriba...q se muestre el mensaje...quiere que se cierre la otra session? ps esta muy buena

Etiquetas: tabla, sesiones, usuarios
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 22:05.