Foros del Web » Programando para Internet » PHP »

Desconectar un usuario del login

Estas en el tema de Desconectar un usuario del login en el foro de PHP en Foros del Web. Hola amig@s, Tengo programado un sistema de login mediante sessiones. Lo típico, si un usuario está logeado se guarda su ID mysql y de ahí ...
  #1 (permalink)  
Antiguo 24/08/2010, 17:04
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
Desconectar un usuario del login

Hola amig@s,

Tengo programado un sistema de login mediante sessiones. Lo típico, si un usuario está logeado se guarda su ID mysql y de ahí opero.

La cuestión es que tengo un panel de administración en el que cambio los estados de ese usuario y al cambiarlos también se cambian las acciones que debe poder realizar dentro de la aplicación.

Entonces en cada PHP lo que hago es comprobar ese estado, que tambien lo almaceno en una variable de session.

Código PHP:
$_SESSION['miestado']=0
Esto lo hago para evitar que en cada página tenga que comprobar el estado yendo a la base de datos mysql.

El problema es cuando desde la administración cambio un estado, hasta que no se deslogea y se vuelve a logear, puede visitar apartados que no le corresponden.

¿Alguien tiene alguna sugerencia?

Un saludo!
  #2 (permalink)  
Antiguo 24/08/2010, 17:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Desconectar un usuario del login

maneja los privilegios usando una base de datos, así la misma información puedes leerla en cualquier script sin importar la sesión...

y por lo mismo son datos que cuando actualizas son permanentes en la BD, de modo que no necesitas de nada mas!!

inclusive puede decir que es la mejor alternativa, por ahora... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/08/2010, 19:05
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Desconectar un usuario del login

Pateke,

Yo ya almaceno el estado del usuario en la base de datos. Cuando se logea correctamente, ese estado de la base de datos lo envío a una variable de session, para no tener que comprobar en cada script haciendo una peticion mysql.

Entonces si desde la administracion cambio el estado a algun usuario, si que se cambia en la base de datos, pero como el que manda es la variable de session, pues hasta que no desloguee y se vuelva a logear no verá los cambios.

Es que no se si me entiendes lo que quiero decir.

Un saludo!
  #4 (permalink)  
Antiguo 24/08/2010, 19:13
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Desconectar un usuario del login

bueno noc si te sirva pero vacia la variable de session y llenala con el valor q desees deberia surtir efecto noc si te entendi bien
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 24/08/2010, 19:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Desconectar un usuario del login

claro que entiendo, pero inicialmente no mencionabas nada de la base de datos...

bueno... entonces según entiendo necesitas comprobar en algún script la sesión misma, y actualizarla con la base de datos... vamos, ¿o acaso hay alguna otra manera?

se que usas sesiones para no tener que comprobar siempre la base de datos, pero bueno, has llegado al punto en el que debes comprobar dichos datos de la sesión, a partir de la base de datos y actualizarla...

osea, es lo mismo que se obtiene al cerrar la sesión e iniciarla de nuevo... ¿o no?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 25/08/2010, 03:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Desconectar un usuario del login

Exacto.

Es decir, cuando se inicia la sessión, el dato almacenado (estado de usuario) en la base de datos la mando a una variable de sessión para no tener que comprobar mediante mysql en cada uno de mis PHP.

Es por eso que si yo cambio ese estado de usuario de la base de datos mediante mi panel de administración, el usuario hasta que no se deslogea y vuelve a logear, puede seguir navegando por categorias ya NO permitidas para ese estado.
  #7 (permalink)  
Antiguo 25/08/2010, 08:33
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: Desconectar un usuario del login

A mi me paso una situacion similar, hace tiempo que hasta ahora no pude resolver, digamos que lo que se desea obtener es actualizar la variable de sesion ¿no es asi?

Carlos_Belisario, Cómo se hace esto:

Cita:
bueno noc si te sirva pero vacia la variable de session y llenala con el valor q desees
  #8 (permalink)  
Antiguo 25/08/2010, 09:05
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Desconectar un usuario del login

bueno noc si te sirva pero yo e echo esto con una variable de session y una consulta noc si este errado
Código PHP:
session_start();
$_SESSION['usuario']="carlos_belisario";
echo 
$_SESSION['usuario'];#aki el resultado es carlos 
unset($_SESSION['usuario']);
$_SESSION['usuario']="luis";
echo 
$_SESSION['usuario'];#aki el resultado es luis11 
noc si sea lo q desean???
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 25/08/2010, 09:24
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: Desconectar un usuario del login

Bueno en parte si, con el uset digamos que le quitas su valor, el problema mio seria reasiganrle el valor a la variable de sesion, ya que este debe tomar el valor de la base de datos, entonces, la logica a la que llego es:

Código PHP:
session_start(); 
$_SESSION['usuario']="nombre"
$_SESSION['id_usuario']=$id_usuario//tendriamos que utilizar la id del usuario  
unset($_SESSION['usuario']); //aqui la "reseteamos"

//se hace la consulta a la base (perdonen si mi sintaxis esta mal, no recuerdo exactamente como se hace, lo importante es el ejemplo)
$consulta=mysql_query("Select usuario from usuarios where id_usuario='$id_usuario'");
$nuevo_valor=mysql_fetch_array($consulta);

//pasamos el nuevo valor a la variable de sesion
$_SESSION['usuario']=$nuevo_valor
¿Cómo ven, ese código podría funcionar?
  #10 (permalink)  
Antiguo 25/08/2010, 13:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Desconectar un usuario del login

Cita:
$nuevo_valor=mysql_fetch_array($consulta);
bueno creo q te falto el campo q vas a llenar en la variable de session ej:
Código PHP:
Ver original
  1. $_SESSION['usuario']=$nuevo_valor['usuario'];

saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: desconectar, login, usuarios
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:28.