Foros del Web » Programando para Internet » PHP »

como puedo destruir una session de usuario logueado?

Estas en el tema de como puedo destruir una session de usuario logueado? en el foro de PHP en Foros del Web. Buenas! Explico mi pregunta, tengo una base de datos que funciona con sessiones, todo de maravilla mi duda surge porque quiero poder "cortar" la session ...
  #1 (permalink)  
Antiguo 09/03/2016, 17:23
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 6 meses
Puntos: 23
Pregunta como puedo destruir una session de usuario logueado?

Buenas!

Explico mi pregunta, tengo una base de datos que funciona con sessiones, todo de maravilla mi duda surge porque quiero poder "cortar" la session de un usuario una vez que este conectado si detecto que esta intentando hacer mal uso del sistema y no solo bloquearlo una vez que haya terminado o bloquearlo para la siguiente vez que se conecte.
Vaya, que estando logeado pueda "desloguearlo" y sacarlo del sistema
¿existe alguna manera?

Saludos y Gracias por responder
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #2 (permalink)  
Antiguo 09/03/2016, 17:32
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: como puedo destruir una session de usuario logueado?

hay maneras pero va a depender de que llames mal uso y de ese mal uso tambien va a depender el modo en que se bloqueará, explica un poco mas y vemos
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 09/03/2016, 17:47
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 6 meses
Puntos: 23
Respuesta: como puedo destruir una session de usuario logueado?

Bueno, quiero dejar claro, mal uso es que una persona ajena a la asignada la cuenta tenga acceso.
el sistema lleva un registro de IP's por las que acceden y por ejemplo tengo un usuario que se conecta de una ciudad pero de pronto 5 mins despues accesan con la misma cuenta pero de una IP diferente en otra ciudad accede a leer y modificar informacion de forma "irregular"
asi que quiero poder bloquear y desconectar a ese usuario inmediatamente antes que acceda a informacion delicada
cabe aclarar que actualmente lo que hace el sistema es bloquear la cuenta pero no puedo evitar que continue accesando o consultando cosa que deseo evitar..

espero haber aclarado el concepto

saludos
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #4 (permalink)  
Antiguo 09/03/2016, 18:07
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: como puedo destruir una session de usuario logueado?

Es un sistema hecho por ti?

puedes añadir un campo a la base de datos llamado "bloqueado".... con valores 0 y 1, desbloqueado y bloqueado

y despues en los documentos o login especificamente, hacer una comprobación de que si "bloqueado" es = 1, no permita logeo, si es 0 que lo permita...

por supuesto el campo "bloqueado" solo el admin(tu) podria administrarlo
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 09/03/2016, 21:54
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: como puedo destruir una session de usuario logueado?

Bueno, jajaja, tú no podrás eliminar la sessión de un usuario ya que se ha creado en un equipo remoto, pero puedes crear un campo de LOGUEO en tu BD, que cuando esté logueado cree una sesión con un valor, puede ser el 1, el 0, o como quieras, y tambien guardas ese valor en la BD, entonces compruebas si la session LOGUEO existe, y si tiene el valor, supongamos 1, lo cual indica que está logueado...

if(isset($_SESSION['logueo'] && $_SESSION['logueo']==1)){
LO DEJAS CONECTADO
}else{
DEBE LOGUEARSE
}

y como ya te indicaron, tambien tener un campo en la BD de bloqueado, si esta 1 o 0 tambien verificas eso al loguearse, si el campo da 0, simplemente le tiras un mensaje, y si esta 1, creas la session de LOGUEO y permites que se loguee normalmente.. no es tan complicado.. con campos en la BD y sessiones lo solucionas
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 09/03/2016, 23:42
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 6 meses
Puntos: 23
Respuesta: como puedo destruir una session de usuario logueado?

Buenas,
Gracias a los dos por responder.. pero no me queda claro... y aclaro que no quiero que me den el codigo si no que quiero "luz" en mi analisis o si existe algun comando ya sea en php o cualquier metodo para hacer lo que quiero...

¿el sistema esta hecho por mi? R= Si
¿tengo control total del servidor? R=Si

la base de datos maneja un campo que controla si esta activo o inactivo, lo controlo con "A" y "I"
lo que tengo hecho actualmente es que si detecto una coneccion "sospechosa" lo bloqueo poniendolo como "Inactivo", pero el detalle es que hasta que salga, ese bloqueo no es efectivo.
lo que quiero es hacer como e visto en algunos sistemas que te "terminan la session" al hacer algo "indevido"

Eso es lo que quiero saber como terminar esa session del usuario en concreto para "expulsarlo" del sistema
se me ocurrio manejarlo con los archivos temporales de la session pero no tengo como saber cual corresponde a cada usuario o mejor dicho, no se como saberlo.
porque obviamente si borro o cambio ese temporal se cierra la session..

ahora.. el concepto que me dicen de otro campo no entiendo como hacerla funcionar puesto que si cambio o mejor dicho si activo en una variable de session, no tendra efecto porque como es obvio la session no fue abierta por mi, entonces no le veo caso....
¿o me equivoco? o peor aun... ¿entendi mal?

de nuevo gracias y saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #7 (permalink)  
Antiguo 10/03/2016, 00:34
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: como puedo destruir una session de usuario logueado?

si ya cuentas con ese campo, perfecto!

ahora lo que te falta hacer es añadir en index o pagina principal que es visitada una comprobacion facil...

Código PHP:
if(isset($_SESSION['alguno_que declaraste']) && $valor_inactivo == "I"){// debes extraer el valor desde la base de datos
//redirecciona a logout.php
header('Location: logout.php');
exit();

en el archivo logout.php simplemente debes destruir la session y listo, asi lo sacas del sistema...

luego en el login, has lo que se te recomendo arriba, si el valor es "I" no lo deje logear

saludos!
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #8 (permalink)  
Antiguo 10/03/2016, 20:50
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 6 meses
Puntos: 23
Respuesta: como puedo destruir una session de usuario logueado?

Buenas Gracias por leer y responder...

petit89: te comento que eso ya lo tengo desde ya hace tiempo en el hecho que si se pone inactivo "I" no le permita logearse, pero...

mi idea o problema radica en que por ejemplo, ya me identifique pero estoy en una IP diferente a la autorizada, o mejor dicho a la "comun" pueda terminar su session
mi situacion es por seguridad ya que detecte que una persona se identifico como un administrador pero de una ciudad diferente a la del administrador "real" entonces obviamente tiene al estar logueado acceso a informacion confidencial que quiero poder evitar que continue leyendo o consultando sin tener que esperar a que cierre su session y se vuelva a loguear

no se si no entendi o no me explique bien pero por eso lo explico mas detenido cual es mi intencion...

Gracias!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #9 (permalink)  
Antiguo 11/03/2016, 03:27
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: como puedo destruir una session de usuario logueado?

Lo que debes hacer es la verificación en todas las páginas no sólo en el login.
  #10 (permalink)  
Antiguo 11/03/2016, 05:28
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: como puedo destruir una session de usuario logueado?

Oye, tu problema ya radica en otro ámbito, no puedes solucionar todo con PHP... si tienen acceso desde otra IP y demás, u otra ciudad, podría ser la misma persona desde otra máquina, aún así, es un problema de servidor, a nivel de IP pública o cortafuegos y demás... si pudiéramos restringir todo y controlar todo pues no existirían los SERVER MANAGER... tu función no es ser un policia, es solo restringir a nivel de acceso a usuarios logueados.. ya cuando entras a IP y demás, no estamos hablando a nivel que PHP deba resolverte... por lo menos no en esta generación.

Saludos
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #11 (permalink)  
Antiguo 11/03/2016, 07:14
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: como puedo destruir una session de usuario logueado?

Halcon, tal como lo vuelve a repetir xerifandtomas.. lo que debes hacer es la comprobacion en todas las paginas.

Código PHP:
Ver original
  1. if(isset($_SESSION['alguno_que declaraste']) && $valor_inactivo == "I"){// debes extraer el valor desde la base de datos
  2. //redirecciona a logout.php
  3. header('Location: logout.php');
  4. exit();
  5. }

Este codigo(ya sea comprobacion por cookie o session, si es por cookie debes arreglarlo), lo que hace es que al ingresar al php que no quieres que vean, comprueba si el usuario esta o no bloqueado basandose en el dato que trae en session(el ejemplo) al compararlo con el campo de la base de datos.. comprueba si ha cambiado o no el estado de inactivo o activo, si el usuario esta marcado como inactivo inmediatamente lo redireciona a logout.php, donde destruyes la session o cookie que tiene actualmente y esta permitiendo el logueo o session iniciada, de esta manera lo estas expulsando del sistema.
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #12 (permalink)  
Antiguo 15/03/2016, 08:23
Avatar de Defaced  
Fecha de Ingreso: febrero-2016
Mensajes: 60
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: como puedo destruir una session de usuario logueado?

Hola a todos, Oigan tengo una duda sobre este tema, la hago aqui o abro otro foro?
__________________
Si tienes conocimientos y quieres enseñar, Enseña con paciencia y sin arrogancia, Recuerda que tu un día también estabas en la situación de la persona que pregunta

Etiquetas: destruir, session, usuario
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:12.