Foros del Web » Programando para Internet » PHP »

Sesiones en PHP

Estas en el tema de Sesiones en PHP en el foro de PHP en Foros del Web. Hola amigos, necesito saber como evitar que hayan dos usuarios iguales a la vez(al mismo tiempo), pero sin utilizar bases de datos, solo haciendo uso ...
  #1 (permalink)  
Antiguo 15/06/2007, 14:23
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Sesiones en PHP

Hola amigos, necesito saber como evitar que hayan dos usuarios iguales a la vez(al mismo tiempo), pero sin utilizar bases de datos, solo haciendo uso de sesiones u otro metodo, para evitar que un usuario sea logueado dos veces en diferentes equipos.

Cabe destacar que ya poseo un formulario de inicio de sesion(usuario, contraseña)para ingresar a la pagina.

de ante mano agradezco su ayuda, me urge ya que he intentado por varios metodos.
  #2 (permalink)  
Antiguo 15/06/2007, 14:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Sesiones en PHP

No es posible mas que utilizando una base de datos o algun medio persistente para almacenar la informacion, veras las sesiones normales se almacenan en archivos temporales los cuales estan protegidos, no es posible desde una session leer variables de otra session (restriccion de PHP).

La unica forma es sobrecargando el uso de sessiones para utilizar una base de datos donde guardes una "bandera" que te indique si esta loggeado y asi no le permites el acceso.

Saludos.
  #3 (permalink)  
Antiguo 15/06/2007, 14:32
 
Fecha de Ingreso: junio-2007
Mensajes: 70
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Sesiones en PHP

Anímate a utilizar una BD, no es demasiado dificil aprender las nociones básicas sobre las mismas. Ahora si el servidor en el que tienes la web no te permite tener una BD subida ya es otra historia :P aunque ya es una opción bastante extendida.
  #4 (permalink)  
Antiguo 15/06/2007, 14:36
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Sesiones en PHP

gracias por tu respuesta GatorV, pero tengo una duda:

ya habia pensado hacerlo de esa manera, pero que pasa si falla el suministro de energia electrica en una de las maquinas o en el servidor?, no quedaria guardada esa bandera en la base de datos?(embasurada), permitiendo de esta manera que al encender la maquina nuevamente el usuario logueado ante de perder el suministro de energia, no pueda enntrar ya que en la base de datos quedo registrada la bandera.

agradecido de tus repuesta de ante mano.
  #5 (permalink)  
Antiguo 15/06/2007, 14:47
 
Fecha de Ingreso: junio-2007
Mensajes: 70
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Sesiones en PHP

Usando cookies puedes controlar eso hasta cierto punto. Te pegaría algún link pero como tengo poca antigüedad en el foro no me deja xD
  #6 (permalink)  
Antiguo 15/06/2007, 15:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Sesiones en PHP

Ante tal fallo necesitas un cron job que se ejecute por decir cada 15 minutos, este lo que hace es ver el ultimo tiempo de actividad, si ya supero por decir ej 10 minutos inactivo reseteas su bandera a 0.

Asi podra a lo maximo tener que esperar 15 minutos para poder volver a entrar.

Saludos.
  #7 (permalink)  
Antiguo 15/06/2007, 18:55
 
Fecha de Ingreso: junio-2007
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Sesiones en PHP

if(isset($_SESSION['usuario']))
{
print "ya existe";
}
else
{
print "No existe";
}
  #8 (permalink)  
Antiguo 18/06/2007, 08:09
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Sesiones en PHP

Gracias por tu respuesta Gatorv, intentare hacer el cron job que me dices para ver q tal me va... agradecido también con todos los demás usuarios del foro que dieron una respuesta a mi pregunta ...
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 18:39.