Как отобразить имя пользователя вместо идентификатора входа в PHP?

#php #mysqli

#php #mysqli

Вопрос:

Я использую идентификатор персонала (username) для входа в систему, однако я хочу просмотреть свое имя (name) вместо моего идентификатора персонала при успешном входе в систему. Я попытался изменить параметр PHP-скрипта с «имя пользователя» на «имя», к сожалению, не удалось и ошибка.

Здесь я делюсь сценарием.

PHP-скрипт для страницы входа в систему

 // Validate credentials
        if(empty($username_err) amp;amp; empty($password_err)){
            // Prepare a select statement
            $sql = "SELECT id, username, password FROM users WHERE username = ?";

 // 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;
  

HTML-код для страницы входа в систему

 <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
    <div class="input-group custom input-group-lg" <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
    <input type="text" name="username" class="form-control" placeholder="Staff ID" value="<?php echo $username; ?>">
    <span style="color:#FF0500" class="help-block"><?php echo $username_err; ?></span>
  

Главная страница

 <span class="user-name">Welcome, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b></span>
  

Комментарии:

1. Шаг 1: Выберите имя в запросе. $sql = "SELECT id, name, username, password FROM users WHERE username = ?"; остальное должно быть довольно очевидным

2. В вашем $ sql = «ВЫБЕРИТЕ идентификатор, имя пользователя, пароль, имя пользователя У пользователей, ГДЕ username = ?»; а затем измените свой СЕАНС

3. Спасибо RiggsFolly amp; Sfili_81. наконец, это успех.

Ответ №1:

Этот ответ решает мой вопрос выше:

 // Prepare a select statement
$sql = "SELECT id, name, username, password FROM users WHERE username = ?";

// Bind result variables
mysqli_stmt_bind_result($stmt, $id, $name, $username, $hashed_password);

// Store data in session variables
$_SESSION["loggedin"] = true;
$_SESSION["id"] = $id;
$_SESSION["name"] = $name;