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