Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Fecha última visita usuario sitio Web

Hola,

Supongamos que estoy construyendo un sitio Web en donde será posible que los visitantes se registren como usuarios de tal manera que puedan aprovecharse del servicio que ofrecerá dicho sitio Web.

Bien. El sitio Web habrá de contar con el típico formulario de "login" desde donde el usuario ya registrado podrá autentificarse. En caso de que la autentificación resulte correcta, se redirigirá al usuario a una página del sitio Web en concreto.

Bien. En esta página Web quisiera mostrarle al usuario un mensaje de "bienvenida personalizada", algo así como "Bienvenido NOMBRE_USUARIO".

Hasta lo dicho llego, es decir que ya lo tengo medio hecho y funciona todo como se espera. La pregunta que quiero hacerte es cómo harías tú para añadir al mensaje de bienvenida la fecha de la última visita del usuario.

Este dato no es baladí, puesto que puede servir al usuario alertándole si la fecha de última visita no es la que él esperaría: alguien podría haberle suplantado en el sistema. De este modo el usuario podría cambiar su contraseña, por ejemplo.

Pues bien, no sé cómo hacerlo. No sé qué campo añadir a qué tabla de la base de datos MySQL que pienso utilizar. No sé cómo ni cuándo guardar la fecha de "última visita" del usuario.

¿Utilizo la propia tabla "usuarios" y añado un campo de tipo "timestamp", por ejemplo? ¿Mejor guardar la fecha de última visita en otra tabla? ¿En qué momento guardar la fecha de la última visita? ¿Cuando el usuario se identifica en el sitio Web? ¿Cuando sale del mismo mediante el correspondiente "LogOut"?

¿Necesitaré acaso un par de fechas que poder comparar? En fin. Estoy lleno de dudas y agradecería cualquier empujoncito para conseguir lo que pretendo. Muchas gracias de antemano y disculpad las posibles molestias.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 17-07-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
No sé cómo ni cuándo guardar la fecha de "última visita" del usuario.
...
¿En qué momento guardar la fecha de la última visita?
En mi opinion, deberias hacerlo como hace vBulletin. Funciona (Creo) de la sigt manera:

Mientras estes navegando en la web, vbulletin lo va monitoreando por cada click qeu das en un enlace, lo guarda en un campo la informacion necesaria(fecha, donde,...), y cuando pasa mas o menos 15 mins sin dar clic hace logout y se queda guardada el ultimo clickazo o actividad que has tenido.

Lo he expressadp de una manera vaga, pero ahi va, a mi entender, el funcionamiento.

dec, puedes hacer esto y cuando el usuario regrese mostrarle este ultima actividad y guardar la siguiente (que es la de login).
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 17-07-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 22
kayetano Va por buen camino
Hola

Yo lo metería en la información del usuario, pondría un nuevo campo "ultimavisita", cuando leas la información del usuario te quedas con el dato y a continuación lo actualizas con un UPDATE para guardar la fecha de la actual visita.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #4  
Antiguo 17-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Muchas gracias a ambos por responder. La verdad que lo que dices Troi no me queda muy claro: seguramente porque mis conocimientos son limitados. Me parece una manera de conseguirlo que podría funcionar, pero, me gustaría encontrar una forma menos complicada (al menos tal como yo lo veo). Es igual, muchas gracias por dar la idea.

En cuanto lo que dices Kayetano, vale, que el campo "ultimavisita" esté en la tabla de "usuarios". Ahora voy a tratar de seguir paso por paso lo que creo que habría que hacerse, a ver hasta dónde llego sin pararme:

Primer escenario:

1º El usuario se se autentifica en el sitio Web. Entre otras cosas, recibe un mensaje de bienvenida que incluye la fecha de su última visita, recogido este dato del campo "ultimavisita" de la tabla "usuarios".

2º En el mismo proceso de autentificación, me encargo de actualizar el campo "ultimavisita", de forma que alberge, precisamente, la fecha actual, es decir, la fecha y hora en que el usuario se autentificó en el sitio Web.

2º El usuario pasa unos minutos en el sitio Web y al cabo decide marcharse mediante el correspondiente "LogOut". La próxima vez que inicie su sesión volviendo a autentificarse, recogeré la fecha del campo "ultimavisita" y se lo mostraré.

Creo que hasta aquí todo puede funcionar bien... ¿o se me escapa algo acaso?

Segundo escenario

1º Igual que el primer paso del Escenario 1

2º Igual que el segundo paso del Escenario 1

3º El usuario pasa unos minutos en el sitio Web y al cabo decide marcarse, pero, esta vez no realiza el "LogOut", sino que, simplemente, cierra el sitio Web para marcharse a otro distinto.

4º Puesto que el sitio Web cuenta con unas "Cookies" encargadas de "recordar" al usuario, cuando este volviera al sitio Web y en caso de que decidiera que se le recordarse como usuario, este no tendría que autentificarse de nuevo.

¿Aquí no estoy ante un problema? Porque, ¿qué fecha de última visita le mostraré al usuario de este último escenario? ¿No será una fecha "equivocada", puesto que será la de la última vez que el usuario cerró la sesión?

Me quedan dudas de si estoy planteando el tema correctamente. Quiero decir que el primer escenario puede parecer "válido", y, sin embargo, me quedan dudas al respecto.

Por otro lado, y si estas dudas mías no tuvieran fundamento, tal vez el segundo escenario podría completarse de la siguiente forma: en el proceso de autentificación del usuario por medio de las "Cookies" correspondientes, podría aprovecharse para actualizar la fecha de última visita.

Esto es así porque el proceso de autentificación siempre se lleva a cabo, de una manera o de otra, con o sin intervención del usuario. ¿Y ahora qué os parece de todo esto? ¿Demasiado prolijo? Os pido disculpas y os agradezco las respuestas pasadas y futuras.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 18-07-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Empezado por dec
La verdad que lo que dices Troi no me queda muy claro:
Es que me explique como una M....
Cita:
Empezado por dec
seguramente porque mis conocimientos son limitados.
Y CREES QEU LOS MIOS SON MAS AMPLIOS?. NO TE CONFIEEEEES

Bueno, vamos a lo qeu vinimos.
Yo me referia a esto en vBulletin. Será esto lo que deseas?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 18-07-2006 a las 05:30:43.
Responder Con Cita
  #6  
Antiguo 18-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sí Troi, es a ese mensaje al que me refería. Aún no hize nada al respecto, porque estoy con otras cosas, pero, espero en breve decir cómo lo he solucionado... si es que he sido capaz de solucionarlo. Si alguien tiene alguna idea que no dude en comentarla por aquí, por cierto. ¡Y gracias!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 18-07-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 22
kayetano Va por buen camino
Hola

Esto se puede solucionar de muchas formas:
1. Con sesiones: cada vez que entre en la página se creará una sesion con los datos del cliente, nombre, fecha último acceso, ... en el caso de que haya salido sin hacer logout la cookie se mantendrá pero la sesion se destruirá en cuanto cierre el navegador. Cuando vuelva a entrar puedes detectar que es un nuevo acceso ya que la sesión no está creada.

2. Con la cookie: puedes guardar la fecha de último acceso en la cookie, y definirte un periodo de inactividad. La siguiente vez que consultes la cookie si la diferencia entre la fecha que tiene guardada y la fecha actual es superior al periodo de inactividad pues consideras que ha sido un nuevo acceso.

3. Con el evento "onUnload" del tag <body>: con este evento puedes capturar si el usuario cambia de página, lo único que debes hacer es actualizar la fecha de la cookie cada vez que se produce este evento, en este caso guardarás la fecha de salida y no la de entrada pero creo que tampoco hay mucho problema.

Supong que dandole vueltas al coco se podrán sacar muchisimas más opciones.

Creo que el primer caso es el más simple, el único caso que no puedes controlar es si el usuario visita dos veces seguidas tu página sin cerrar el navegador. Otro posible problema es que deje el navegador abierto mucho tiempo sin hacer nada y que la sesión caduque, en este caso se considerará un nuevo acceso si vuelve a navegar por tu web.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como Leer la fecha de " última Modificación " de un archivo. JuanErasmo C++ Builder 2 07-10-2005 18:28:19
Libro de visita alachaise PHP 1 30-08-2004 19:24:12
Duda sobre sistema ulti-usuario y mono-usuario simon Varios 1 07-06-2004 18:35:44
Sitio Ftp jam Varios 1 23-02-2004 19:38:34
Evitar que un usuario modifique la fecha y la hora @-Soft Windows 4 09-05-2003 01:30:17


La franja horaria es GMT +2. Ahora son las 16:08:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi