Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: lioncorp en 24 Julio 2020, 17:54



Título: Mostrar datos de Usuarios Logueados
Publicado por: lioncorp en 24 Julio 2020, 17:54
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
  1. <?php
  2. // Initialize the session
  3.  
  4. // Check if the user is already logged in, if yes then redirect him to welcome page
  5. if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
  6.  header("location: vistas/index.php");
  7.  exit;
  8. }
  9.  
  10. // Include config file
  11. require_once "config/config.php";
  12.  
  13. // Define variables and initialize with empty values
  14. $username = $password = "";
  15. $username_err = $password_err = "";
  16.  
  17. // Processing form data when form is submitted
  18. if($_SERVER["REQUEST_METHOD"] == "POST"){
  19.  
  20.    // Check if username is empty
  21.    if(empty(trim($_POST["username"]))){
  22.        $username_err = "Por favor ingrese su usuario.";
  23.    } else{
  24.        $username = trim($_POST["username"]);
  25.    }
  26.  
  27.    // Check if password is empty
  28.    if(empty(trim($_POST["password"]))){
  29.        $password_err = "Por favor ingrese su contraseña.";
  30.    } else{
  31.        $password = trim($_POST["password"]);
  32.    }
  33.  
  34.    // Validate credentials
  35.    if(empty($username_err) && empty($password_err)){
  36.        // Prepare a select statement
  37.        $sql = "SELECT id, username, password FROM users WHERE username = ?";
  38.  
  39.        if($stmt = mysqli_prepare($link, $sql)){
  40.            // Bind variables to the prepared statement as parameters
  41.            mysqli_stmt_bind_param($stmt, "s", $param_username);
  42.  
  43.            // Set parameters
  44.            $param_username = $username;
  45.  
  46.            // Attempt to execute the prepared statement
  47.            if(mysqli_stmt_execute($stmt)){
  48.                // Store result
  49.                mysqli_stmt_store_result($stmt);
  50.  
  51.                // Check if username exists, if yes then verify password
  52.                if(mysqli_stmt_num_rows($stmt) == 1){                    
  53.                    // Bind result variables
  54.                    mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password);
  55.                    if(mysqli_stmt_fetch($stmt)){
  56.                        if(password_verify($password, $hashed_password)){
  57.                            // Password is correct, so start a new session
  58.                            session_start();
  59.  
  60.                            // Store data in session variables
  61.                            $_SESSION["loggedin"] = true;
  62.                            $_SESSION["id"] = $id;
  63.                            $_SESSION["username"] = $username;                          
  64.  
  65.                            // Redirect user to welcome page
  66.                            header("location: vistas/index.php");
  67.                        } else{
  68.                            // Display an error message if password is not valid
  69.                            $password_err = "La contraseña que has ingresado no es válida.";
  70.                        }
  71.                    }
  72.                } else{
  73.                    // Display an error message if username doesn't exist
  74.                    $username_err = "No existe cuenta registrada con ese nombre de usuario.";
  75.                }
  76.            } else{
  77.                echo "Algo salió mal, por favor vuelve a intentarlo.";
  78.            }
  79.        }
  80.  
  81.        // Close statement
  82.        mysqli_stmt_close($stmt);
  83.    }
  84.  
  85.    // Close connection
  86.    mysqli_close($link);
  87. }
  88. ?>
  89.  
  90. <!DOCTYPE html>
  91. <html lang="en">
  92. <head>
  93.    <meta charset="UTF-8">
  94.    <title>Login</title>
  95.    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
  96.    <style type="text/css">
  97.        body{ font: 14px sans-serif; }
  98.        .wrapper{ width: 350px; padding: 20px; }
  99.    </style>
  100. </head>
  101. <body>
  102.    <div class="wrapper">
  103.        <h2>Acceso MED - JR</h2>
  104.        <p>Por favor, complete sus credenciales para iniciar sesión.</p>
  105.        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
  106.            <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
  107.                <label>Usuario</label>
  108.                <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
  109.                <span class="help-block"><?php echo $username_err; ?></span>
  110.            </div>    
  111.            <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
  112.                <label>Contraseña</label>
  113.                <input type="password" name="password" class="form-control">
  114.                <span class="help-block"><?php echo $password_err; ?></span>
  115.            </div>
  116.            <div class="form-group">
  117.                <input type="submit" class="btn btn-primary" value="Ingresar">
  118.            </div>
  119.        </form>
  120.    </div>    
  121. </body>
  122. </html>
Y con este otro lo muestro en la vista
Código
  1. <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.


Título: Re: Mostrar datos de Usuarios Logueados
Publicado por: mchojrin en 10 Agosto 2020, 20:52
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?


Título: Re: Mostrar datos de Usuarios Logueados
Publicado por: vicram10 en 11 Agosto 2020, 22:49
asi como menciona mchojrin, para poder mostrar mas cosas, deberias de guardar en la session los datos que quieres mostrar de cada usuario logueado.