Foros del Web » Programando para Internet » PHP »

Entendidos en Sessions!!!

Estas en el tema de Entendidos en Sessions!!! en el foro de PHP en Foros del Web. Hola, Quiero que en mi "página principal para usuarios" se imprima el nombre y apellido del usuario que está conectado. El problema es que, cuando ...
  #1 (permalink)  
Antiguo 25/12/2008, 02:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Entendidos en Sessions!!!

Hola,

Quiero que en mi "página principal para usuarios" se imprima el nombre y apellido del usuario que está conectado.

El problema es que, cuando el usuario hace login, mete su username y password nada más. Su nombre y apellido están en la bbdd.

¿Cómo puedo recoger el nombre y apellido de la bbdd y meterlos en la sesión para imprimirlos en la página principal?

Esto es lo que he intentado, pero nada:

EN LOGIN:
while($row = mysql_fetch_array($query))
{
$nombre = $row['nombre'];
$apellido = $row['apellido'];
}
....
$_SESSION['usuario'] = "$username";
$_SESSION['nombre']= $nombre;
$_SESSION['apellido']= $apellido;
header('Location: ../indexAprovados.php' );

EN PÁGINA PRINCIPAL
echo $_SESSION['nombre']; // No muestra
echo $_SESSION['apellido']; // No Muestra
....
echo $_SESSION['usuario']; // Si muestra (Supongo porque se recogía en el Login con el POST.

GRACIAS!!!
  #2 (permalink)  
Antiguo 25/12/2008, 04:22
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: Entendidos en Sessions!!!

Que tal,

Prueba cambiandolo por esto:

Código PHP:
session_start();
$query=mysql_query("select nombre,usuario from TUTABLA"); //Modifícalo para que quede correctamente
$row mysql_fetch_array($query);
//Cuanto ya se haya logueado hacemos lo siguiente:
$_SESSION['nombre'] = $row['nombre'];
$_SEESION['apellido']= $row['apellido'];
header("Location: ../indexAprovados.php" ); 
Código PHP:
//EN PÁGINA PRINCIPAL
session_start();
echo 
"Bienvenido ",$_SESSION['nombre'],$_SESSION['apellido']; 
Lo que puse es mas o menos lo que quieres hacer

realmente solo tienes que definir en la MISMA pagina donde se ha logueado

$_SESSION['usuario']=$row['campo'];

y luego obiamente no se te olvide el session_start() en todas las paginas;

saludos, espero que te sirva ;) feliz navidad :)
__________________
*La amistad se multiplica cuando se divide*
  #3 (permalink)  
Antiguo 25/12/2008, 15:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Entendidos en Sessions!!!

Tal vez el ciclo no se está ejecutando, y por eso $nombre y $apellido no están definidos y las variables de sesión se generan vacías. Revisa que la consulta almacenada en $query tenga de verdad resultados.

Por otro lado, te recomiendo almacenar en sesión sólo el usuario (id) y contraseña, y en cada página abierta realizar una consulta a la bd para comprobar esos datos y de paso extraer la información del usuario.

  #4 (permalink)  
Antiguo 25/12/2008, 17:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Entendidos en Sessions!!!

Prueba lo siguiente:
Primero el archivo form.php ó pagina principal:
Código PHP:
<html>
<head>
<title>Ingreso usuario</title>
</head>
<body>
<?php
if(isset($_SESSION['nombre']) && isset($_SESSION['apellido'])){
//Imprimimos el nombre y apellido
echo "Tu nombre: ".$_SESSION['nombre']."<br>"."Tu apellido: ".$_SESSION['apellido'];
//Quitamos las variables
unset($_SESSION['nombre']);
unset(
$_SESSION['apellido']);
}
?>
<form action="procesar.php" method="post">
Usuario:<input type="text" name="usuario"><br>
Password:<input type="password" name="contrasena">
</form>
</body>
</html>
Y ahora el archivo procesar.php:
Código PHP:
if(isset($_POST['usuario']) && isset($_POST'contrasena'])){
/*Seteamos la variable del post , por si las dudas*/
$usuario $_POST['usuario'];
$contra $_POST['contrasena'];

/*Aqui introduce toda tu informacion de conexion a la base de datos*/
$conexion mysql_connect("localhost","usuario","password");
mysql_select_db("tu_tabla");

/*Comprobamos los datos con los de la base de datos*/
$q "SELECT * FROM tu_tabla WHERE usuario = '$usuario' && contrasena = '$contra'";
$resultado mysql_query($q$conexion);
if(
mysql_num_rows($resultado) > 0){
/*el usuario esta loggeado, por tanto procedemos a setear las variables*/
$bdarray mysql_fetch_array($resultado);
$_SESSION['nombre'] = $bdarray['nombre'];
$_SESSION['apellido'] = $bdarray['apellido'];
//Redireccionamos a la pagina del form
header("Location: form.php");
}
else{
/*El usuario no esta loggeado, por tanto seteamos la variable de sesion con el error*/
$_SESSION['error_login'] = true;
//Redireccionamos
header("Location: form.php");

Espero te sirva, 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 03:06.