Foros del Web » Programando para Internet » PHP »

Cerrar sesiones automáticamente

Estas en el tema de Cerrar sesiones automáticamente en el foro de PHP en Foros del Web. Hola a todos, estoy intentando hacer que a una hora determinada todos los días los usuarios que estén en la web logueados se les caiga ...

  #1 (permalink)  
Antiguo 07/03/2010, 12:22
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Cerrar sesiones automáticamente

Hola a todos, estoy intentando hacer que a una hora determinada todos los días los usuarios que estén en la web logueados se les caiga la sesión y tengan que loguearse nuevamente.

Es puesto esto en un archivo que se actualiza cada x horas con el cron:

Código PHP:
if (date("H:i:S") == "01:00:00"setcookie($log_config['COOKIE_NAME'], ""time()-100000"/"""0); 
Pero no me echa fuera de la sesión.

Que podría ser, habría algo mejor que me podáis recomendar?

Saludos.
  #2 (permalink)  
Antiguo 07/03/2010, 12:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cerrar sesiones automáticamente

sucede que las sesiones dependen de un navegador para almacenar el ID de la misma, usando cookies para almacenar dicho dato ... ;)

cuando ejecutas un CRON no existe la mas mínima relación con el cliente, ya que el proceso es ejecutado en el servidor... por el servidor!!

de ese modo no puede eliminar ningún tipo de información relacionada al cliente, que dependa del cliente...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/03/2010, 13:46
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

A ver me explico :S, el usuario al acceder a la web se le graba una cookie en su navegador, si no no podrá acceder al portal, entonces el cron ejecuta un archivo de la web donde actualiza varios datos del usuario en la web, puntos, niveles etc...

Cuando el usuario hace clic en el botón logout la cookie le ejecuta esta linea:

Código PHP:
setcookie($log_config['COOKIE_NAME'], ""time()-100000"/"""0); 
Lo que quisiera es saber como hacer para que a las xx.xx horas haga un logout automático a todos los usuarios que estén dentro de la web.

EDITO: En vez del Cron, metería la linea o código que haga esa función en un archivo que cuando el usuario haga clic en cualquier botón de la web le tire de la sesión, hay un archivo el cual se haga lo que se haga siempre pasa por ahí para recoger datos, podría ponerse ahí dentro y así cuando le de algún botón si es la hota xx.xx lo tire fuera de la sesión.

Cómo podría hacerlo?

Última edición por NazCarLpa; 07/03/2010 a las 13:56
  #4 (permalink)  
Antiguo 07/03/2010, 17:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cerrar sesiones automáticamente

Cita:
Iniciado por NazCarLpa Ver Mensaje
[...] Lo que quisiera es saber como hacer para que a las xx.xx horas haga un logout automático a todos los usuarios que estén dentro de la web. [...]
ese es el punto por lo cual haciendolo con un script ejecutado por CRON se ejecuta la versión CLI de PHP y no la CGI, por ende no hay relación real con el servidor web en uso...

Cita:
Iniciado por NazCarLpa Ver Mensaje
[...] EDITO: En vez del Cron, metería la linea o código que haga esa función en un archivo que cuando el usuario haga clic en cualquier botón de la web le tire de la sesión, hay un archivo el cual se haga lo que se haga siempre pasa por ahí para recoger datos, podría ponerse ahí dentro y así cuando le de algún botón si es la hota xx.xx lo tire fuera de la sesión. [...]
esto tampoco lo entiendo, en todo caso... en la misma ejecución de tu aplicación web, puedes ejecutar un script que haga la limpieza general... y esa, tal ves si afectaría la sesión... pero solo del usuario actual...

una posibilidad es relacionar la sesión de los usuarios en la base de datos, y así el script que se ejecuta ya sea vía web o CRON si puede modificar dicha información en la base de datos... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/03/2010, 17:40
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Bueno eso último es más o menos lo que quiero decir, a ver...

Los usuarios que estén conectados y estén navegando por la web, cuando llegue la hora "x" serán deslogueados automáticamente, como si ellos mismos apretarán el botón de cerrar sesión.

No se si es en vez de cookies hacer que la sesión del usuario tenga una validez hasta la hora "x".

Ejemplo: Accedo a la web a las 10 de la mañana y cuando lleguen las 20.00 se me cerrará la sesión y tendré que poner de nuevo mi usuario y contraseña.

Algo así tiene más sentido pienso, no?
  #6 (permalink)  
Antiguo 07/03/2010, 17:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cerrar sesiones automáticamente

Cita:
Iniciado por NazCarLpa Ver Mensaje
[...] No se si es en vez de cookies hacer que la sesión del usuario tenga una validez hasta la hora "x". [...]
pero claro!!

lee la documentación acerca de como configurar las sesiones, por supuesto que puedes hacer que caduquen.... no a cierta hora, sino en determinado tiempo... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/03/2010, 17:54
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Hay un juego en el cual yo soy jugador, que todos los días a las 02.00 AM todos los que estamos jugando nos tira a la calle y tenemos qe entrar de nuevo, da igual a la hora que te hayas logueado, a las 02.00 estas en la calle.

Como pueden hacerlo?
  #8 (permalink)  
Antiguo 07/03/2010, 23:19
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Cerrar sesiones automáticamente

podrias leerte esto.. no se si publicar link de otras web esta permitido te lo mando por privado.. .. el punto es q te lo leas y en la parte que compara hra de acceso con hra transcurrida.. en ves de comparar pusieras un igual.. denegandole el acceso o algo asi .. noc quisas te ayude...

y lo del juego.. si es un juego web, noc.. pero si es un juego MMORPG,, O ALGO asi pues es facil a las x hras se tmba el servidor.. y luego s einicia nuevamente por eso es q los bota.. =) !
  #9 (permalink)  
Antiguo 07/03/2010, 23:30
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Cerrar sesiones automáticamente

Yo tengo un juego online y tambien hago algo asi como tu dices, a cierta hora, todos los jugadores que esten jugando son forzados a ir a una pagina php para digamos "recargar ciertos valores de sesion", como si hicieran un relogin sin tener que volver a introducir user y pass.

Bueno, mi metodo quizas sea un poco bruto, pero hoy por hoy, me funciona xD, en cada registro de jugador tengo un campo Relogin que normalmente esta a 0, y luego en cada pagina del juego (que en todas recoge cierta info del jugador, incluido su campo Relogin) tengo un include que lo que hace es comprobar si el valor Relogin esta a 1 y entonces redirecciona a donde queramos, realiza lo que sea y cambia el valor Relogin del jugador a 0.

Otra forma que se me ocurre es que cuando crees las variables de sesion correspondientes al logueo de un jugador, grabes tambien una sesion con el valor time() donde el jugador debe ser forzado a reloguear. Y de nuevo al inicio de todas tus paginas tendras que comprobar si el time() actual es >= que el time() grabado y entonces forzar el relogueo.

En fin... a ver si te sirve algo! saludos
  #10 (permalink)  
Antiguo 08/03/2010, 01:03
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Cerrar sesiones automáticamente

holaa vun! yo jugue tu juego.. bueno noc si te acuerdas de mi. d un post de unas actualizaciones hace tiempo ya.. , =) ! revisa mi post recien publicado.:S es q ahora me pasa un suceso muy extraño.. =(

y NascarLpa! SI tenias dudas pues este es el hombre qte va a ayudar.. xD! pasate por su juego.. !
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #11 (permalink)  
Antiguo 08/03/2010, 03:03
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Vun es para eso exactamente, para llevar un control de acesos y otras cosas necesito que a las 12 de la noche todo el que esté online o haya abierto una sesión durante el día se tenga que loguear.

Cuando te logueas en el juego da igual si cierras el navegador o apagas el pc, al abrir de nuevo sigues logueado, entonces me gustaría que a las 12 de la noche tire todas las sesiones que se hayan validado durante el día.

El juego que comento es ogame, yo juego ahí y a las 02.00 de la mañana tenemos que loguearnos obligadamente, no creo que tumben el servidor porque si estoy jugando al hacer clic en cualquier botón del juego me cierra la sesión y en menos de 20 segundos la abro de nuevo, si se hubiese tirado el server mínimo 3 minutos para poder tenerlo online de nuevo y lo único que hace es que a las 02.00 nos cierra la sesión enviándonos al index del login.

Tiene que ser algo de cierre de sesiones o que nos ponga cookie a -10000 o no se la verdad, pero no doy con la solución.
  #12 (permalink)  
Antiguo 08/03/2010, 10:02
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Cerrar sesiones automáticamente

Cita:
Iniciado por JoseGMariani Ver Mensaje
holaa vun! yo jugue tu juego.. bueno noc si te acuerdas de mi. d un post de unas actualizaciones hace tiempo ya.. , =) ! revisa mi post recien publicado.:S es q ahora me pasa un suceso muy extraño.. =(

y NascarLpa! SI tenias dudas pues este es el hombre qte va a ayudar.. xD! pasate por su juego.. !
Jejej, pero siempre digo que soy muy bruto programando, luego le doy un repaso al foro

Cita:
Iniciado por NazCarLpa Ver Mensaje
Vun es para eso exactamente, para llevar un control de acesos y otras cosas necesito que a las 12 de la noche todo el que esté online o haya abierto una sesión durante el día se tenga que loguear.

Cuando te logueas en el juego da igual si cierras el navegador o apagas el pc, al abrir de nuevo sigues logueado, entonces me gustaría que a las 12 de la noche tire todas las sesiones que se hayan validado durante el día.

El juego que comento es ogame, yo juego ahí y a las 02.00 de la mañana tenemos que loguearnos obligadamente, no creo que tumben el servidor porque si estoy jugando al hacer clic en cualquier botón del juego me cierra la sesión y en menos de 20 segundos la abro de nuevo, si se hubiese tirado el server mínimo 3 minutos para poder tenerlo online de nuevo y lo único que hace es que a las 02.00 nos cierra la sesión enviándonos al index del login.

Tiene que ser algo de cierre de sesiones o que nos ponga cookie a -10000 o no se la verdad, pero no doy con la solución.
Claro, pero tienes que entender que obligatoriamente hay que hacer cierta comprobacion al inicio de todas las paginas, ¿sino como va a saber el cliente que el servidor le obliga a algo? Mira mi segunda idea, a la par que creas las variables de sesion que te mantienen logueado en el juego, crea otra variable de sesion que guarde la siguiente fecha/hora donde el jugador va a ser forzado a reloguear. Y a cada inicio de pagina, vas comprobando esa variable del jugador con la hora real. Asi si el jugador se mantiene logueado habra un momento que es enviado a la pagina de "relogin", hace lo que tenga que hacer y le pones otra fecha/hora de relogin.
  #13 (permalink)  
Antiguo 08/03/2010, 11:22
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Lo que tu dices es más o menos lo que te quería decir yo jeje, a ver hay un fichero el cual siempre que un jugador pulse un botón, "da igual el que sea" siempre es utilizado por el juego para subir los recursos del jugador, por lo cual sería meter ahí algo para tirar a los jugadores que estén logueados.

Yo le puse:

Código PHP:
if (date("H:i:S") == "23:59:00"setcookie($game_config['COOKIE_NAME'], ""time()-100000"/"""0); 
Pero no entiendo porque no me funciona.

Tu que dices??

Saludos y tiene buena pinta el juego jeje.
  #14 (permalink)  
Antiguo 08/03/2010, 11:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cerrar sesiones automáticamente

Cita:
Iniciado por NazCarLpa Ver Mensaje
Lo que tu dices es más o menos lo que te quería decir yo jeje, a ver hay un fichero el cual siempre que un jugador pulse un botón, "da igual el que sea" siempre es utilizado por el juego para subir los recursos del jugador, por lo cual sería meter ahí algo para tirar a los jugadores que estén logueados.

Yo le puse:

Código PHP:
if (date("H:i:S") == "23:59:00"setcookie($game_config['COOKIE_NAME'], ""time()-100000"/"""0); 
Pero no entiendo porque no me funciona.

Tu que dices??

Saludos y tiene buena pinta el juego jeje.
dicho fragmento de código, ¿donde lo colocas? ¿donde y como es ejecutado??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 08/03/2010, 11:35
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Cuando el usuario refresca la web o accede algún lugar de ella, automáticamente se ejecuta este archivo ya que es el que hace los cálculos sobre los materiales.

El juego va produciendo materiales, por ejemplo tienes 3.000 4.000 1.000 y cuando refrescas la página dándole al botón Visión General o ir a Mensajes o donde sea da igual el botón que toques las cantidades anteriores suman y te puede dar 3.120 4.080 1.034 dependiendo de los niveles que tengas subidos.

No se si me entiendes, entonces ese "if" lo meto en ese archivo, cuando el usuario se mueva donde sea en el juego debería tirarlo fuera, pero no funciona, no se si está mal hecho o que puede ser.
  #16 (permalink)  
Antiguo 08/03/2010, 11:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cerrar sesiones automáticamente

lo único que se me ocurre es que no sabes que la hora siempre es la del servidor...

y otro detalle es que la comparación que haces es muy exacta, y dudo que alguien ejecute tu script a precisa hora...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 08/03/2010, 11:51
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Es que no entiendo como lo hacen los de ese juego que te comenté, yo estoy jugando y si refresco a las 02.00 me tira fuera y si no lo hago y espero a las 02.30 me tira igual, siempre que pase de las 02.00 todo el que se haya logueado a lo largo del día se va a la calle.

Como lo hacen? ni idea, ojalá lo supiera ya que es lo que quiero hacer.
  #18 (permalink)  
Antiguo 08/03/2010, 12:31
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Cerrar sesiones automáticamente

Fijate este codigo que pusiste:

Código PHP:
Ver original
  1. if (date("H:i:S") == "23:59:00") setcookie($game_config['COOKIE_NAME'], "", time()-100000, "/", "", 0);

Solo vas a invalidar la cookie si un jugador carga una pagina con ese codigo exactamente en el segundo 0 del minuto 59 de las 23 horas. Por eso te decia mas arriba, que tienes que guardar si o si una variable de sesion (llamemosla CERRAR) que guarde por ejemplo "03/08/2009 23:59:99" que es el proximo momento desde el cual el jugador debe reloguear y tu condicion seria:

Código PHP:
Ver original
  1. if (date("d/m/Y H:i:S") >=$_SESSION["CERRAR"]) setcookie($game_config['COOKIE_NAME'], "", time()-100000, "/", "", 0);

Aunque si conoces la funcion time() es mucho mas comodo
  #19 (permalink)  
Antiguo 08/03/2010, 12:50
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Entonces debería poner en el archivo del login:

Código PHP:
if (date("d/m/Y H:i:S") >=$_SESSION["CERRAR"]) setcookie($game_config['COOKIE_NAME'], ""time()-100000"/"""0); 
O donde se pondría?
  #20 (permalink)  
Antiguo 08/03/2010, 13:40
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Cerrar sesiones automáticamente

si pero tienes q definir la variable de seccion [cerrar] segun lo que entendi aunq yo noc definirlas todavia.. u.u se me hace algo intendible.. en el lin q te pase esta como definir variables de seccion.. ves q si tenia algo q ver.. y me imagino q ese codigo lo colocaras en donde estaba tu antiguo codigo es decir en todas las paginas..

creo que se te haria ams comodo si usaras include('pagina.php');

y asi la pagina.php seria la q agarrael codigo.. y solo tndrias q modificar dicha pagina.. n ves d emodificar todasss las q tengas bueno es una comodidad..

si sabes hacer variables de seccion enseñame por privado.. -.- es q quiero hacer de q cuando pase cierto tiempo o se cierre el explorador se cierre laseccion pero en lso ejemplos q tengo q fueron loq te pase dice q tengo q definir lavariable de seccion y noc como..

Bueno estoy invadiendo un tema! hehe :S suerte prueba lo q dicen.. si no tambien esta la opcion que te dije.. =) del job crob y la base de datos..

y como la hra siempre es del servidor.. pues podrias poner un relod en la pagina que agarre la hra del servidor.. y e sla hra con la q los usuarios se guiaran.. cuando publiques alguna noticia q si el server se cae a las 22:00 hra del server...

y asi saben.. por q puede ser q yo tenga las 7 am por q vivo en japon! y el server esta en usa y es otra hra.. xD JEJEJE
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #21 (permalink)  
Antiguo 08/03/2010, 16:23
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Cita:
Iniciado por JoseGMariani Ver Mensaje
si pero tienes q definir la variable de seccion [cerrar] segun lo que entendi aunq yo noc definirlas todavia.. u.u se me hace algo intendible.. en el lin q te pase esta como definir variables de seccion.. ves q si tenia algo q ver.. y me imagino q ese codigo lo colocaras en donde estaba tu antiguo codigo es decir en todas las paginas..

creo que se te haria ams comodo si usaras include('pagina.php');

y asi la pagina.php seria la q agarrael codigo.. y solo tndrias q modificar dicha pagina.. n ves d emodificar todasss las q tengas bueno es una comodidad..

si sabes hacer variables de seccion enseñame por privado.. -.- es q quiero hacer de q cuando pase cierto tiempo o se cierre el explorador se cierre laseccion pero en lso ejemplos q tengo q fueron loq te pase dice q tengo q definir lavariable de seccion y noc como..

Bueno estoy invadiendo un tema! hehe :S suerte prueba lo q dicen.. si no tambien esta la opcion que te dije.. =) del job crob y la base de datos..

y como la hra siempre es del servidor.. pues podrias poner un relod en la pagina que agarre la hra del servidor.. y e sla hra con la q los usuarios se guiaran.. cuando publiques alguna noticia q si el server se cae a las 22:00 hra del server...

y asi saben.. por q puede ser q yo tenga las 7 am por q vivo en japon! y el server esta en usa y es otra hra.. xD JEJEJE
Pero porque en todas las páginas?? si hay un fichero que lo ejecutan todos los usuarios al moverse por cualquiera de las páginas del juego :S
  #22 (permalink)  
Antiguo 08/03/2010, 16:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cerrar sesiones automáticamente

Cita:
Iniciado por NazCarLpa Ver Mensaje
Pero porque en todas las páginas?? si hay un fichero que lo ejecutan todos los usuarios al moverse por cualquiera de las páginas del juego :S


pues eso... si ya tienes un archivo que se ejecuta siempre, pus ahí coloca esas lineas... eso vendría a significar "en todas las paginas" .... al final es una expresión literal, que con algo de reflexión razonarías...

¿acaso no tienes un poco de sentido común??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #23 (permalink)  
Antiguo 08/03/2010, 16:52
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

jajaj vale ahora si lo pillo, la verdad que con el lío que tengo últimamente ya ni se leer con razonamiento :( mil disculpas.

Entonces ahora con poner en dicho fichero:

Código PHP:
if (date("d/m/Y H:i:S") >=$_SESSION["CERRAR"]) setcookie($game_config['COOKIE_NAME'], ""time()-100000"/"""0); 
Se cerraría la sesión de los que se han logueado en el día, pero donde le digo la hora ?

Perdona mi torpeza pero estoy leyendo un libro de php y aprendiendo poco a poco :S
  #24 (permalink)  
Antiguo 08/03/2010, 18:08
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Cerrar sesiones automáticamente

en la variable de seccion cerrar.. se la estableces.. pero como dije antes.. todavia eso de las difrentes variables de seccion no lo entiendo muy bien.. =( y pues yo tambien quisiera hacer algo as pero al transcurrir x segundos.. como en el eemplo que te mande q no lo entiendo muy bien.. jeje bueno ya despues vendra un post preguntandome eso.. :S cuando termine de acomodar todo.. me pongo a pensar en la seguridad del sistema.. jeje
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #25 (permalink)  
Antiguo 08/03/2010, 18:12
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Pienso que si de esta manera me ahorro una query sería mejor que mejor, pero claro, donde le digo la hora a esta linea.

Código PHP:
 if (date("d/m/Y H:i:S") >=$_SESSION["CERRAR"]) setcookie($game_config['COOKIE_NAME'], ""time()-100000"/"""0); 
  #26 (permalink)  
Antiguo 08/03/2010, 18:25
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Cerrar sesiones automáticamente

LEEAN ESTO todos... !

las variables de seccion se establecen en el momento que el se loguea... en el ejemlo que te pase, lo hacen! bueno espero q tu si entiendas eso de las variables de seccion por q la verdad yo no..


solo tengo una sola q es cuando el se loguea pero noc como poner otras... alguien que nos ayude?

a mi tambien me interesa saber estoo.. :/
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #27 (permalink)  
Antiguo 08/03/2010, 21:19
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Cerrar sesiones automáticamente

Yo ya no se como explicarlo xD , aqui un tutorial de sesiones pero que tambien explica bien su funcionamiento:
http://www.desarrolloweb.com/articulos/321.php

Luego probad a hacer un echo time(); vereis que devuelve un valor en segundos, es como la fecha y hora pasada a segundos.

Ok, ¿para que queremos sesiones y time()? vamos al lio.

1. Cuando un jugador loguea probablemente se crean para el unas variables de sesion como pudieran ser $_SESSION["ID"] , $_SESSION["NICK"] que con un session_start(); al inicio de todas las paginas se "propaga".

2. Pues tambien al loguear vamos a crear una variable de sesion que sea el tiempo en segundos justo de esta noche (el dia en que estemos) a las 23:59. Para eso usaremos mktime(), que es una funcion a la que le pasamos el dia, mes, año, hora, minutos y segundos y nos devuelve ese valor en segundos que he explicado antes. Nos hara falta la funcion date(); con la que sacaremos el dia, mes, año, etc. Si no lo usaron nunca prueben a hacer un echo date("d:m:y"); segun los valores que le demos nos devuelve el dia, mes, año, o solo uno de ellos, incluso tambien la hora. Prueben con echos!!!!!!! echo es vuestro amigo y os enseña muchas cosas xD

$_SESSION["TIMERELOGIN"]=mktime(23,59,59, date("m"), date("d"), date("Y"))+2;

Si estais programando en un script/juego que no es vuestro, pues tendreis que rebuscar!! el script donde el jugador loguee.

3. Ya tenemos en $_SESSION["TIMERELOGIN"] el momento en segundos en el cual un jugador deberia ser forzado a reloguear ok. Entonces en todas nuestras paginas (ya sea con un include o pegandola en todas las paginas), es cuando hacemos la comprobacion, que propiamente dicho seria algo como:

-Si (el momento actual es mayor o igual al momento guardado en la variable de sesion TIMERELOGIN) entonces {Cerramos la sesion, o bien redireccionamos a un php donde se realicen las acciones oportunas y ademas generemos el nuevo valor para TIMERELOGIN}



Prueben cosas, lean documentacion de estas funciones, no se, yo me retiro xD
  #28 (permalink)  
Antiguo 08/03/2010, 23:42
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Cerrar sesiones automáticamente

jajaja es q de verdad ya no se sabia como explicar jeje e q otra forma ps.. jeje yo si entendi el codigo.. asi por encima pues osea lo supe leer asi con logica.. pero no sabia como definir varables de seccion.. entoncs es solo colocando en el codigo php

$_SESSION["NOMBRE DE LA VARIABLE"]= (a lo que yo quiero que sea? )

? o.O me imagino que eso va por decir algo. al final del codigo del login.php.. osea por decir algo.. yoc q igual la spuedo generar en cualquier form.. pero es un ejemplo.. corrigeme cualquier cosa.. y beuno d everdad Gracias HAHA xD aunq el q pidio ayuda fue nascarlp xD A MI tambien me sirve de muxo.. Gracias.. nuevamente..
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #29 (permalink)  
Antiguo 09/03/2010, 17:19
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años
Puntos: 5
Respuesta: Cerrar sesiones automáticamente

Bueno al final me voy a dar por vencido :S en el juego no hay ningún
Código PHP:
session_start(); 
, lo que hay es esto:

Login.php

Código PHP:
if ($login)
            {
                if (isset(
$_POST["rememberme"]))
                {
                    
$expiretime time() + 31536000;
                    
$rememberme 1;
                }
                else
                {
                    
$expiretime 0;
                    
$rememberme 0;
                }

                @include(
'configuration.php');
                
$cookie $login["id"] . "/%/" $login["username"] . "/%/" md5($login["password"] . "--" $dbsettings["secretword"]) . "/%/" $rememberme;
                
setcookie($na_config['COOKIE_NAME'], $cookie$expiretime"/"""0); 
main.js

Código PHP:
function set_cookie(ele,value,expire)
{
expireStatement="";if(expire!="")
{var 
expireTime=new Date();expire=expire*1000;expireTime.setTime(expire);expireStatement=" expires="+expireTime.toGMTString()+"";}
if(
document.cookie)
{
document.cookie=ele+"="+value+";"+expireStatement;}
else
{
document.cookie=ele+"="+value+";"+expireStatement;}} 
class.checksession.php

Código PHP:
if (isset($_COOKIE[$na_config['COOKIE_NAME']]))
        {
            
$TheCookie  explode("/%/"$_COOKIE[$na_config['COOKIE_NAME']]);
            
$UserResult doquery("SELECT * FROM {{table}} WHERE `username` = '"$TheCookie[1]. "';"'users');

            if (
mysql_num_rows($UserResult) != 1)
            {
                
message($lang['ccs_multiple_users'], $root_path5falsefalse);
            }

            
$UserRow    mysql_fetch_array($UserResult);

            if (
$UserRow["id"] != $TheCookie[0])
            {
                
message($lang['ccs_other_user'], $root_path5,  falsefalse);
            }

            if (
md5($UserRow["password"] . "--" $dbsettings["secretword"]) !== $TheCookie[2])
            {
                
message($lang['css_different_password'], $root_path5,  falsefalse);
            }

            
$NextCookie implode("/%/"$TheCookie);

            if (
$TheCookie[3] == 1)
            {
                
$ExpireTime time() + 86400;// 86400 1 dia, antes tenia 31536000
            
}
            else
            {
                
$ExpireTime 0;
            } 
Tiene que haber algo que poniéndolo en el archivo que te digo le cierre la sesión a una hora determinada. :S
  #30 (permalink)  
Antiguo 09/03/2010, 17:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cerrar sesiones automáticamente

bueno, pues si no hay sesiones... usa cookies!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: cerrar, sesiones
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:38.