Foros del Web » Programando para Internet » PHP »

sesiones php y mysql

Estas en el tema de sesiones php y mysql en el foro de PHP en Foros del Web. hola a ver, que es lo que sucede cuando por ejemplo tengo sesiones en mi pagina web . inicio sesion de usuario , y luego ...
  #1 (permalink)  
Antiguo 08/05/2012, 13:28
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
sesiones php y mysql

hola a ver, que es lo que sucede cuando por ejemplo tengo sesiones en mi pagina web . inicio sesion de usuario

, y luego NO cierro la sesion , lo que si hago es cerrar la ventana

queda abierta?

.... sucede , que al iniciar sesion , actualiza en la base de datos un campo que indica si la sesion esta abierta... teniendo el valor 1

si cierro la sesion.este campo se actualiza a 0...el campo borrado a 0 sera el unico restringido por el id de usuario que ingreso anteriormente, ya puede haber varias sesiones abiertas, y va a ver varios "1" en los campos de sesion abierta.


------------------------------
bueno la duda es si el usuario cierra la ventana; -NO CIERRA SESION haciendo click-

en la base de datos queda el 1...

una solucion seria que de ultima verifico si la cookie esta vacia,,,me haga la consulta para actualizar a 0... no?


*************
  #2 (permalink)  
Antiguo 08/05/2012, 13:36
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: sesiones php y mysql

A ver.. vamos por pasos...

1) porque controlas por base de datos algo que por session lo podes manejar tranquilamente? a menos que necesites motrar a otros usuarios el estado de conexion de los demas.

2) la session sigue abierta sin importar si cerras la ventana, la unica forma de matar la session es que vos la cierres con session_destroy() (y elimines los datos de $_SESSION en caso de utilizarla para validar el status de vida de la session) y por el tiempo que este especificado en el php.ini del tiempo de vida de la session, son las unicas 2 constantes a tener en cuenta.

3) Si trabajas como lo estas haciendo, si el flaco te cierra la ventana nunca vas a actualizar el campo a 0, eso es seguro, asique fijate bien que es lo que en verdad necesitas hacer. Lo que podes hacer en el caso de tener que verificar la existencia de la session es hacer un script en php que con un cron lo ejecute cada cierto tiempo y se fije en el servidor el temporal que genera la session, si existe ese archivo temporal es que la session existe, caso contrario actualizas la base de datos, pero vas a tener que meterle un poco de logica mas compleja y tener acceso al directorio de las sessiones obviamente o sino cookies como dijiste....
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 08/05/2012, 20:45
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: sesiones php y mysql

1) no me quedaba otra alternativa , por que tengo 2 divs distintos, uno donde se ven los productos. y otro donde esta el formulario de inicio de sesion,
cuando inicio sesion , este solo me indica que se inicio sesion , en la variable $SESSION , pero en el div, donde se muestran los productos, sigue estando $SESSION vacia.. a menos que se actualize, por que cuando el usuario inicio sesion por ajax se refresco el div del formulario ,y no el otro ,
esto me traia problema cuando el usuario desde producto , quiere realizar un compra. presionando sobre cada producto...
la idea es que si hay una sesion abierta, este pueda agregar productos al carrito ,
si hay sesiones cerradas , este no `puede agregar productos al carrito.

bueno esto pasaba , iniciaba sesion y no se podia comprar,. nada, ya que habia que refrescar la la pagina.. no tuve exito con la idea de refrescar la pagina... (haciendo que una funcion se llame automaticamente,, otras veces me anduvo , pero esta no .. que se redireccione asi misma...-refrescar-)

bueno con esto me sirve , haciendo una consulta a la bbdd, por ajax y se si hay una session , abierta, ya termino este parte del programa y listo termino la pagina!!!
pense varias forma de solucionarlo, pèro esta era la unica alternativa.. mas zafable...habia otras...



2 ) eso de las sesiones funciona como como esperaba, el valor en la base de datos...ya lo tengo bajo control...

3) el valor ese en las base de datos, es como una bandera,.. que me indica que se inicio sesion , despues compruebo el ID al que pertenece ese valor 1 -bandera- y veo si es igual al ID del usuario que inicio $SESSION , si es valido, queda bien...
si no ese valor esta de antes..


y lo pensaba borrar , de otra manera... pero por el momento , no molesta...

no hay una funcion javascript. que se ejecuta cuando cierro el navegador?? busco con ese lo borraria...o inventaria otra cosa...
  #4 (permalink)  
Antiguo 09/05/2012, 00:06
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: sesiones php y mysql

lo hice de otra manera, nunca lo pense, mas simple, borro el campo ese...

asi, onmouseover, llamada a ajax,
imprime formulario oculto
javascript,toma el valor del form oculto
valido si la session esta.
fin , :)

Etiquetas: mysql, 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 09:51.