Mostrar datos de Usuarios Logueados

Iniciado por lioncorp, 24 Julio 2020, 17:54 PM

0 Miembros y 1 Visitante están viendo este tema.

lioncorp

Buenos días estimados, su gentil ayuda por favor.
Mi mujer es Dra. y he querido hacerle un regalo, un software sencillo para que ella lleve sus pacientes y el historial clínico, pero no logro hacer funcionar algunas cosillas, no es mi fuerte la programación pero estoy aprendiendo sobre la marcha.
Eso tema es que antes de empezar con lo fuerte necesito poder mostrar los datos de un usuario logueado, actualmente solo me muestra el username, pero necesito que me muestre mas información como lo es Prefijo, Nombres y Apellidos, adjunto el código que tengo para el login.
Código (php) [Seleccionar]
<?php
// Initialize the session
session_start();
 
// Check if the user is already logged in, if yes then redirect him to welcome page
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
  
header("location: vistas/index.php");
  exit;
}
 
// Include config file
require_once "config/config.php";
 
// Define variables and initialize with empty values
$username $password "";
$username_err $password_err "";
 
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
 
    
// Check if username is empty
    
if(empty(trim($_POST["username"]))){
        
$username_err "Por favor ingrese su usuario.";
    } else{
        
$username trim($_POST["username"]);
    }
    
    
// Check if password is empty
    
if(empty(trim($_POST["password"]))){
        
$password_err "Por favor ingrese su contraseña.";
    } else{
        
$password trim($_POST["password"]);
    }
    
    
// Validate credentials
    
if(empty($username_err) && empty($password_err)){
        
// Prepare a select statement
        
$sql "SELECT id, username, password FROM users WHERE username = ?";
        
        if(
$stmt mysqli_prepare($link$sql)){
            
// Bind variables to the prepared statement as parameters
            
mysqli_stmt_bind_param($stmt"s"$param_username);
            
            
// Set parameters
            
$param_username $username;
            
            
// Attempt to execute the prepared statement
            
if(mysqli_stmt_execute($stmt)){
                
// Store result
                
mysqli_stmt_store_result($stmt);
                
                
// Check if username exists, if yes then verify password
                
if(mysqli_stmt_num_rows($stmt) == 1){                    
                    
// Bind result variables
                    
mysqli_stmt_bind_result($stmt$id$username$hashed_password);
                    if(
mysqli_stmt_fetch($stmt)){
                        if(
password_verify($password$hashed_password)){
                            
// Password is correct, so start a new session
                            
session_start();
                            
                            
// Store data in session variables
                            
$_SESSION["loggedin"] = true;
                            
$_SESSION["id"] = $id;
                            
$_SESSION["username"] = $username;                          
                            
                            
// Redirect user to welcome page
                            
header("location: vistas/index.php");
                        } else{
                            
// Display an error message if password is not valid
                            
$password_err "La contraseña que has ingresado no es válida.";
                        }
                    }
                } else{
                    
// Display an error message if username doesn't exist
                    
$username_err "No existe cuenta registrada con ese nombre de usuario.";
                }
            } else{
                echo 
"Algo salió mal, por favor vuelve a intentarlo.";
            }
        }
        
        
// Close statement
        
mysqli_stmt_close($stmt);
    }
    
    
// Close connection
    
mysqli_close($link);
}
?>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        body{ font: 14px sans-serif; }
        .wrapper{ width: 350px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <h2>Acceso MED - JR</h2>
        <p>Por favor, complete sus credenciales para iniciar sesión.</p>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' ''?>">
                <label>Usuario</label>
                <input type="text" name="username" class="form-control" value="<?php echo $username?>">
                <span class="help-block"><?php echo $username_err?></span>
            </div>   
            <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' ''?>">
                <label>Contraseña</label>
                <input type="password" name="password" class="form-control">
                <span class="help-block"><?php echo $password_err?></span>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Ingresar">
            </div>
        </form>
    </div>   
</body>
</html>

Y con este otro lo muestro en la vista
Código (php) [Seleccionar]
<h2><?php echo htmlspecialchars($_SESSION["username"]); ?></h2>
Ahora no se como hacer para que me muestre los otros datos, seria de gran ayuda por favor.

mchojrin

El tema es que no estás guardando ningún otro dato en la sesión.

¿Este código lo copiaste de algún lado?
Ayudo a desarrolladores PHP a acceder a puestos mejor remunerados

vicram10

asi como menciona mchojrin, para poder mostrar mas cosas, deberias de guardar en la session los datos que quieres mostrar de cada usuario logueado.