Ver Mensaje Individual
  #15 (permalink)  
Antiguo 13/02/2010, 16:32
lecheme
 
Fecha de Ingreso: febrero-2010
Mensajes: 8
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Como obtener la id de un usuario y redirigirle a su página personal

hola de nuevo. he encontrado estos códigos en una web.. pero sigo sin poder conectar el login.php con el perfil.php. el primer código hace login y se autentifica con el segundo código que llamo autentificar.php. finalmente busco que al identificarse correctamente, el último código( perfil.php) arroje una consulta del tipo perfil.php?id=2 por ejemplo y me de toda información que tiene en la bbdd el usuario con id=2

login.php

Código:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

if(!isset($_SESSION[usuario]) ) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{

//Creamos el form k irá a autentificar.php para comprobar los datos con la tabla users
echo '<form action="autentificar.php" method="POST">
Nick: <input type="text" name="nick" size="30"><br>
Password: <input type="password" name="pass" size="30" ><br>
<input type="submit" name="submit" value="Enviar"></form>';

}else{

//SI se ha logeado, mostramos el nick y la opción de deslogearse
//Este sería el menú que saldría a la gente que esta logeada, se puede modificar y añadir cosas
echo 'Bienvenido '.$_SESSION[usuario]; //ej Bienvenido Juan
echo '<br>Tu level es '.$_SESSION[level]; //mostramos el level del user
if($_SESSION[level] == 1)
{
//mostramos el link para ir a la pagina privada porque el user tiene level 1 (*Nota: el level por defecto es 2, por lo tanto no se le mostrará)
//*Nota2: para cambiar el level a 1, se tiene k hacer manualmente por phpmyadmin
echo '<br><a href=paginaprivada.php>Ir a pagina privada</a>';
}

echo '<br><a href=logout.php>Salir</a>'; //link para deslogearse, iría a logout.php

}

?>
autentificar.php

Código:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

if( ($_POST[nick] == ' ') or ($_POST[pass] == ' ') )//comprobamos que las variables enviadas por el form de login.php tienen contenido
{
Header("Location: login.php"); //estan vacías, volvemos al index
}else{

//comprobamos en la db si existe ese nick con esa pass
$usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$_POST[pass]' ");
if($user_ok = mysql_fetch_array($usuarios)) //si existe comenzamos con la sesion, si no, al index
{

session_register("usuario"); //registramos la variable usuario que contendrá el nick del user
session_register("idusuario"); //registramos la variable idusuario que contendrá la id del user
session_register("level"); //registramos la variable level que contendrá el level del user
//damos valores a las variables de la sesión
$_SESSION[usuario] = $user_ok["nick"]; //damos el nick a la variable usuario
$_SESSION[idusuario] = $user_ok["id"]; //damos la id del user a la variable idusuario
$_SESSION[level] = $user_ok["level"]; //damos el level del user a la variable level
Header("Location: login.php"); //volvemos al login donde nos saldrá nuestro menú de usuario

}else{
echo 'Nick y pass incorrectos';
}

}
?>
perfil.php

Código:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión

if(!isset($id))
{
echo 'no se ha seleccionado ninguna id'; //no han seleccionado ninguna id,
}else{

//comprobamos si esa id existe
$user=mysql_query("SELECT * FROM users WHERE id='$id' ");
if($user_ok=mysql_fetch_array($user) )
{
//todo comprobado, ahora solo falta mostrar los datos
echo 'Usuario <b>'.$user_ok["nick"].'</b><br>';
echo '<br>Email: <a href="mailto:'.$user_ok["email"].'">'.$user_ok["email"].'</a><br>';

//sacamos la fecha de registro mediante la funcion date
$fecha=date("d.m.Y - H:i", $user_ok["fecha"]);
echo 'Fecha de registro: '.$fecha.'<br>';

//por último mostramos el rollo
echo 'Rollo:<br>'.$user_ok["rollo"];


}else{

echo 'La id seleccionada no existe';

}

}
?>