Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/08/2006, 06:28
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Iniciado por BreCkver
Hola:

Creo que tu pregunta es demasiado subjetiva; ya que no comentas que tipo de registro de usuarios usas. Por ejemplo, si estas utilizando sessiones o parte de tu codigo donde haces el inicio de sesion, pues, esto es muy importante.

Te aconsejo: Puedes usar la varible de la session_Id para agregarle el identificador de tu usuario.

Ahora, cuando otro usuario intente accesar primero se hara una comprobacion si el identificador del usuario = session_Id, es porque ya ha iniciado session.

Espero haberme explicado, de todos modos echale un vistazo al tema de sessiones

::
Dado que las sesiones son "únicas" para el cliente que las crea .. no es necesario hacer lo que mencionas .. sólo viendo si existe tu variable de sesión sobraría.

De todas el problema de "concurrencia" que plantea nuestro amigo .. su solución debe ser por otro médio. .. Es decir, por la misma naturaleza de las sesiones no puedes basarte en un dato que almacenes en una variable de sesión pues sólo lo verá y accederá para comprobaciones el mismo cliente que las crea.

Lo normal en estos casos es que te bases en "flag's" ... Es decir, .. al hacer "login" tu usuario con cierta "cuenta" .. colocas el "flag" a 1 (en el registro del usuario de tu tabla de usuarios o donde los gestiones).

Cuando sale tu usuario .. lo colocas a 0 .. Cuando haces el "login" siempre valida si ese "flag" está a 0 .. si está a 1 . .deniegas nuevos login's.

El problema vendrá cuando el usuario salga de tu sistema en forma abrubta .. es decir, que no salidó por tus rutinas "logout" donde puedas poner dicho flag a "0". En esos casos lo que se toma como "flag" no es un "boolean" sino una fecha; fecha de ingreso al sistema la cual vas a actualizando a cada iteracción del usuarios con tu sistema (que pida páginas...), a su vez en cada "login" compruebas si la fecha de última "actualización" y la actual es superior al tiempo que tu consideres como "inactividada" .. si es superado, puedes considerar que el usuario ya no está iteractuando con el sistema y podrías dejar realizar nuevos "login". (así funcionan los código que gestionan el tema de "usuarios activos" (puedes verlos en las FAQ's del foro de PHP y el sub-foro de POO))

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.