Foros del Web » Programando para Internet » PHP »

Saber que usuario esta logueado

Estas en el tema de Saber que usuario esta logueado en el foro de PHP en Foros del Web. Hola chavos, mi duda es como saber que nombre de usuario registrado en mi base de datos esta logueado en mi sitio. Código PHP: <?php  ...
  #1 (permalink)  
Antiguo 24/01/2006, 13:31
Avatar de vigux
Usuario no validado
 
Fecha de Ingreso: mayo-2004
Ubicación: villahermosa
Mensajes: 42
Antigüedad: 19 años, 11 meses
Puntos: 0
Saber que usuario esta logueado

Hola chavos, mi duda es como saber que nombre de usuario registrado en mi base de datos esta logueado en mi sitio.

Código PHP:
<?php include ('../conexion/db_conection.php'); 

//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT * FROM admin WHERE usuario='$usuario' and clave_usuario='$contrasena'"

//Ejecuto la sentencia 
$rs mysql_query($ssql,$conexion); 

//vemos si el usuario y contraseña es válido 
//si la ejecución de la sentencia SQL nos da algún resultado 
//es que si que existe esa conbinación usuario/contraseña 
if (mysql_num_rows($rs)!=0){ 
    
//usuario y contraseña válidos 
    //defino una sesion y guardo datos 
    
session_start(); 
    
session_register("autentificado"); 
    
$autentificado "SI"
    
header ("Location: ../Administracion/admin.php"); 
}else { 
    
//si no existe le mando otra vez a la portada 
    
header("Location: ../login.php?errorusuario=si"); 

mysql_free_result($rs); 
mysql_close($conexion); ?>
Luego en cada pagina compruebo su autenticidad en base a lo que me trae autentificado:
Código PHP:
<? 
//Inicio la sesión 
session_start(); 

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO 
if ($_SESSION["autentificado"] != $id_usuario) { 
    
//si no existe, envio a la página de autentificacion 
    
echo "No cuenta con los permisos suficientes para accesar a esta area";
    echo 
"<p>";
    echo 
"<a href=\"../login.php\"> Ingresar </a>";
    
//header("Location: ../login.php"); 
    //ademas salgo de este script 
    
exit(); 

?>
asi que lo que quiero acer, es imprimir ese nombre de usuario por cada pagina que abre. darle un mensaje por ejemplo: estas logueado como: usuario, y a la vez guardarlo en la base de datos, tipo historial. Saludos
  #2 (permalink)  
Antiguo 24/01/2006, 14:50
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 21 años, 11 meses
Puntos: 6
No entiendo bien la pregunta.
Queres que el usuario que se logueo pueda ver su nombre?
o queres saber que usuarios estan logueados en cierto momento?
__________________
"Vivir....solo cuesta Vida"
  #3 (permalink)  
Antiguo 24/01/2006, 17:25
Avatar de vigux
Usuario no validado
 
Fecha de Ingreso: mayo-2004
Ubicación: villahermosa
Mensajes: 42
Antigüedad: 19 años, 11 meses
Puntos: 0
lo que me interesa saber, es que usuario se a logueado y almacenar en la bd los cambios que aga a ciertos registros de mi base de datos de mi sitio web.

Gracias.
  #4 (permalink)  
Antiguo 24/01/2006, 18:01
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Creo que lo que tendrías que hacer es registrar como variable de sesión el nombre del usuario (para mostrarlo) y un id, que te permita identificarlo fácilmente con un número único, lo cual te sirve para llevar un registro en una tabla de "log".

Código PHP:
if (mysql_num_rows($rs)!=0){ 
    
//usuario y contraseña válidos 
    //defino una sesion y guardo datos 
    
session_start(); 
    
session_register("autentificado"); 
    
$autentificado "SI"
Esta parte la cambiaría un poco. Primero la condición que buscás no es que la consulta te devuelva más de un resultado sino uno (y sólo uno). Puesto así, dejás la puerta abierta para lo que llaman "sql injection". (Hay mucho sobre el tema en la web, podrías echarle una mirada).

O sea que es preferible hacer el if así:

Código PHP:
if (mysql_num_rows($rs)==1
En vez de session_register, podés usar directamente el array $_SESSION.

Ej.
Código PHP:
$_SESSION["autentificado"] = true;
$_SESSION['nombre_usr'] = $usuario;
$_SESSION['id_usr'] = $id_usuario// el id tendrías que agregarlo a la consulta o a la tabla si no existe 
Después en los otros scripts podrías hacer algo así:

Código PHP:
if (!isset($_SESSION["autentificado"]) || $_SESSION["autentificado"] != true) {
    
//si no existe autentificado o si existe pero el valor es distinto de true
    
echo "No cuenta con los permisos suficientes para accesar a esta area";
    echo 
"<p>";
    echo 
"<a href=\"../login.php\"> Ingresar </a>";
    
//header("Location: ../login.php"); 
    //ademas salgo de este script 
    
exit(); 
} else {
    
$nombre_usuario $_SESSION["nombre_usr"];
    
$id_usuario $_SESSION["id_usr"]; // acá tenés el id del usuario que te sirve para ir registrando el "log".
    
echo "Bienvenido $nombre_usuario"// o algo por el estilo 
    // sigue tu página



Suerte
Califa
  #5 (permalink)  
Antiguo 25/01/2006, 12:55
Avatar de vigux
Usuario no validado
 
Fecha de Ingreso: mayo-2004
Ubicación: villahermosa
Mensajes: 42
Antigüedad: 19 años, 11 meses
Puntos: 0
Gracias amigo, me fue de gran ayuda tu aportacion.

Saludos.
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 09:00.