Foros del Web » Programando para Internet » PHP »

¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar otro?

Estas en el tema de ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar otro? en el foro de PHP en Foros del Web. Tengo una web en la que en la parte privada hay una parte en la que se modifican unos expedientes, y es necesario que cuando ...
  #1 (permalink)  
Antiguo 07/08/2008, 05:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 0
¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar otro?

Tengo una web en la que en la parte privada hay una parte en la que se modifican unos expedientes, y es necesario que cuando un usuario esté modificando la información de un expediente en concreto nadie más pueda acceder al modificado de éste.

Gracias
  #2 (permalink)  
Antiguo 07/08/2008, 06:16
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar

hace lo siguiente:
1) crea un campo en tu expediente que se llame usando y que su valor predeterminado sea '0'...
2) al ingresar al expediente automaticamente hace un Update y cambia el valor de 0 a 1
3) y que cuando termine de modificar, al presionar el boton guardar vuelva a ponerle valor 0

y listo...

ahora solo tenes que restringir haciendo una consulta a tu BD preguntando si el valor es '0' o '1' y si es '0' le muestra el formulario pero si es uno, le sale un mensaje que diga otro usuario esta modificando esta pagina, favor espere unos minutos e intente de nuevo...


Si pones tu codigo te vamos a poder ayudar a hacer esto o alguna otra solucion alternativa..
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por farra; 07/08/2008 a las 06:46
  #3 (permalink)  
Antiguo 08/08/2008, 04:00
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar

Gracias por tu aportación farra pero se presenta el problema de que si cieera la ventana en la que está trabajando, 'usando' se queda a 1 y ya no podría entrar nadie.
  #4 (permalink)  
Antiguo 08/08/2008, 05:19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar

y con sesiones?
si alguien va a editar que se cree una variable de sesion y cuando otra persona quiera acceder mire si ya hay una sesion iniciada
  #5 (permalink)  
Antiguo 08/08/2008, 09:27
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar

Creo que la solución de farra es la mas lógica. Fue lo primero que pensé cuando leí el post.
Si tiene esa desventaja, si uno cierra el navegador, o se le apaga la pc. Nunca mas se puede loguear alguien.

Puedes mejorar esa solucion:
Guardas 0 y 1, y ademas un fecha/hora.
Haces que cada 'x' minutos, el usuario que está logueado actualice esa fecha/hora automaticamente.

Luego, si uno se intenta loguear se fija:
Si está en 0, se loguea tranquilo.
Si el valor esta en 1:
Si la hora actual es < ultimoLogin + 'X' NO puede loguearse, porque hay uno logueado.
Si la hora actual es > ultimoLogin + 'X' Se puede loguear, porque quiere decir que un usuario se logueó, pero su browser no está activo, porque hubiese modificado la hora.

Tiene la desventaja, que cuando un usuario cierra el navegador, no puede loguearse otro por "x" tiempo.... suena coherente, capaz q estoy delirando
  #6 (permalink)  
Antiguo 08/08/2008, 10:01
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar

Cita:
Iniciado por chitoso Ver Mensaje
Creo que la solución de farra es la mas lógica. Fue lo primero que pensé cuando leí el post.
Si tiene esa desventaja, si uno cierra el navegador, o se le apaga la pc. Nunca mas se puede loguear alguien.

Puedes mejorar esa solucion:
Guardas 0 y 1, y ademas un fecha/hora.
Haces que cada 'x' minutos, el usuario que está logueado actualice esa fecha/hora automaticamente.

Luego, si uno se intenta loguear se fija:
Si está en 0, se loguea tranquilo.
Si el valor esta en 1:
Si la hora actual es < ultimoLogin + 'X' NO puede loguearse, porque hay uno logueado.
Si la hora actual es > ultimoLogin + 'X' Se puede loguear, porque quiere decir que un usuario se logueó, pero su browser no está activo, porque hubiese modificado la hora.

Tiene la desventaja, que cuando un usuario cierra el navegador, no puede loguearse otro por "x" tiempo.... suena coherente, capaz q estoy delirando
yo lo haria tal y como tu dices, un campo de "ocupado" ademas del de la fecha/hora
  #7 (permalink)  
Antiguo 12/08/2008, 02:20
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar

Gracias a todos por vuestro interés.
Lo haré esa manera
  #8 (permalink)  
Antiguo 12/08/2008, 08:47
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: ¿Cómo se puede hacer que una página cuando haya un usuario no pueda entrar

Cita:
Iniciado por manzarinaa Ver Mensaje
y con sesiones?
si alguien va a editar que se cree una variable de sesion y cuando otra persona quiera acceder mire si ya hay una sesion iniciada
La información de las sesiones no se comparte entre usuarios, para eso tendrás que crearte tú mismo un sistema de sesiones (persistiendo en algún medio la información y recuperando cada vez que entra un usuario al sistema).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 17:23.