Foros del Web » Programando para Internet » PHP »

Problema para obtener el nombre de usuario

Estas en el tema de Problema para obtener el nombre de usuario en el foro de PHP en Foros del Web. Hola estimados, Recurro a ustedes porque tengo el siguiente problema. Tengo un Login que me funciona perfecto, pero no puedo mostrar los campos del usuario ...
  #1 (permalink)  
Antiguo 08/02/2015, 18:24
 
Fecha de Ingreso: agosto-2014
Mensajes: 12
Antigüedad: 9 años, 8 meses
Puntos: 0
Exclamación Problema para obtener el nombre de usuario

Hola estimados,
Recurro a ustedes porque tengo el siguiente problema. Tengo un Login que me funciona perfecto, pero no puedo mostrar los campos del usuario logeado con $_SESSION (solo puedo mostrar el nombre de usuario con $_SESSION['usuario'].

Les dejo el código

index.php
Código PHP:
<?php
    
require_once("sesion.class.php");

    
$sesion = new sesion();
    
    function 
validarUsuario($usuario$password)
    {
        
$conexion = new mysqli("localhost","root","","control");
        
$consulta "select * from administrador where usuario = '$usuario';";
        
        
$result $conexion->query($consulta);
        
        if(
$result->num_rows 0)
        {
            
$fila $result->fetch_assoc();

            if( 
strcmp($password,$fila["password"]) == )
                return 
true;                        
            else                    
                return 
false;
        }
        else
                return 
false;
    }

    if( isset(
$_POST["iniciar"]) )
    {
        
        
$usuario $_POST["usuario"];
        
$password md5($_POST["password"]);

        
        if(
validarUsuario($usuario,$password) == true)
        {            
            
$sesion->set("usuario",$usuario);
            
header("location: control.php");
        }
        else 
        {
            echo
'<script type="text/javascript">
                alert("Usuario o Contraseña Incorrecta");
                </script>'
;
        }
    }
    

?>
control.php
Código PHP:
<?php

//creamos la sesion
session_start();

//validamos si se ha hecho o no el inicio de sesion correctamente

//si no se ha hecho la sesion nos regresará a login.php
if(!isset($_SESSION['usuario'])) 
{
  
header('Location: index.php'); 
  exit();
}
$name $_SESSION['nombre'];
Y cuando coloco
Código PHP:
<span> <?php echo $name?><i class="caret"></i></span>
Me arroja: Notice: Undefined index: nombre in C:\wamp\www\TableroControl\control.php on line 14
  #2 (permalink)  
Antiguo 08/02/2015, 19:37
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: Problema para obtener el nombre de usuario

estas declarando la variable $name en funcion a una SESSION que no has creado.
Pues $_SESSION['nombre'] no veo que la hayas creado. Has creado $_SESSION['usuario'].

Cambia nombre por usuario y no deberia haber problema.
  #3 (permalink)  
Antiguo 09/02/2015, 08:31
 
Fecha de Ingreso: agosto-2014
Mensajes: 12
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problema para obtener el nombre de usuario

Gracias por el dato, pero necesito mostrar el campo "nombre" de la base de datos correspondiente al usuario logeado con la sesion $_SESSION['usuario'], y solo me muestra el campo 'usuario'
  #4 (permalink)  
Antiguo 09/02/2015, 09:51
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Problema para obtener el nombre de usuario

Hasta donde alcanzo a comprender estas creando tu variable de sesión con el mismo dato obtenido del formulario de logueo:

Código PHP:
$sesion->set("usuario",$usuario); 
Lo que deberías hacer es obtener el valor de la session nombre desde el resultado de tu consulta, algo así:

Código PHP:
$sesion->set("nombre",$fila['nombre']); 
Quedando asi:

Código PHP:
if(validarUsuario($usuario,$password) == true
        {             
            
$sesion->set("usuario",$usuario);
            
$sesion->set("nombre",$fila['nombre']); 
            
header("location: control.php"); 
        } 
Con lo cual debes buscar la manera de retornar dicho valor. Podrías intentar retornar en lugar de true el array $fila, validar si recibiste los datos correctos y asignar los valores a las respectivas sesiones.

Disculpas cualquier malentendido que tenga en la interpretación de tu código, como te dije inicialmente no tengo mucha experiencia en programación.

Última edición por karma274; 09/02/2015 a las 10:12

Etiquetas: mysql, nombre, select, 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 01:35.