Foros del Web » Programando para Internet » PHP »

Restringgir acceso a una solo persona a la vez

Estas en el tema de Restringgir acceso a una solo persona a la vez en el foro de PHP en Foros del Web. Buenas, Haber si pudieran echarme una mano con el siguiente problema: tengo una página web que controla una serie de dispositivos. Necesito limitar el acceso ...
  #1 (permalink)  
Antiguo 04/11/2010, 03:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Restringgir acceso a una solo persona a la vez

Buenas,

Haber si pudieran echarme una mano con el siguiente problema: tengo una página web que controla una serie de dispositivos. Necesito limitar el acceso para que no más de una persona acceda a dicha página en todo momento.

Cada usuario tiene unos turnos establecidos, así que, antes de permitir el acceso, compruebo si es el turno del usuario. El problema reside en cuando un "usuario" (que no persona) quiere acceder a la web desde dos sitios diferentes al mismo tiempo. (Se asigna un "usuario" a un grupo de personas. Esto no sepuede cambiar)

Si bien tengo una variable en la base de datos que actualizo segun un usuario accede o no a dicha web. El problema reside en que mientras que puedo controlar cuando activar esa variable (cuando se accede a la web), no puedo controlar cuando volverla a cambiar ya que aunque hay un boton para cerrar la web "correctamente", el usuario puede perfectamente salir de la web simplemente cerrando el navegador.

Esto provoca que si una persona no cierra bien la aplicación, a otra no le deja acceder a la web ya que ésta aún se encuentra tecnicamente ocupada, a pesar de que realmente no lo esté.

¿Alguna ídea?

Gracias de antmeno por cualquier ayuda que me puedan dar ^^
  #2 (permalink)  
Antiguo 04/11/2010, 03:46
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: Restringgir acceso a una solo persona a la vez

Solo dar una pequeña aportación, a ver si te puede servir de ayuda.
En tu primer problema (el mismo usuario des de direferentes lugares), podrias capturar la ip del usuario actualmente conectado y luego compararla con la ip del usuario que se quiere conectar, para comprobar si es una misma persona en el mismo ordenador o otra persona totalmente diferente.
Como capturar IP:
http://www.eslomas.com/index.php/arc...n-ip-real-php/

Espero que sea esto de ayuda. :P
  #3 (permalink)  
Antiguo 04/11/2010, 04:40
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Restringgir acceso a una solo persona a la vez

Gracias, de todas formas para diferenciar entre personas con el mismo "usuario" lo que hago es que cuando la persona accede a la web creo una variable de sesion nueva. Entonces aunque multiples personas tengan "acceso" solo aquella que accedió primera tiene esta variable de sesión creada por lo que solo esta tiene realmente acceso.

Entonces el problema realmente esta en determinar cuando una persona que ha accedido sigue realmente haciendo uso de la web (dentro de la web puede seguir haciendo peticiones al servidor mediante AJAX) o simplemente a dejado de usarla sin cerrarla "correctamente". Lo que no se si hay es una menera definitiva de comprobar esto.
  #4 (permalink)  
Antiguo 04/11/2010, 05:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 19
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Restringgir acceso a una solo persona a la vez

Hola,

Una posible solución sería crear un javascript que comunique con php a intervalos de por ejemplo un minuto.

Si el usuario sigue estando en la página, envias a php y ya está.

Tiene que ser con AJAX claro.

Un saludo.
  #5 (permalink)  
Antiguo 04/11/2010, 07:26
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Restringgir acceso a una solo persona a la vez

tambien puedes hacer un cronjob con un script que revise si hay una session activa, y a su vez tambien crear un script para desconectar al usuario si dura un tiempo inactivo en la pagina

Etiquetas: persona
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 06:41.