Войдите с помощью пин-кода, но отобразите «Welcome $ username» - PullRequest
0 голосов
/ 04 мая 2018

Я создал базовую страницу входа в систему, где пользователи входят в систему, используя 6-значный пин-код, который подтверждается данными в таблице и начинает свою сессию с использованием PHP. При входе в систему на странице приветствия я хотел бы показать «Welcome username», где username - это соответствующее имя из таблицы - user_first.

Вот мой логин:

$error='';
if (isset($_POST['submit'])) {
    require 'dbconnect_inc.php';
    $loginid = $_POST['loginid'];
    $result = mysqli_query($conn, 'SELECT * FROM hpnhusers WHERE user_loginid="'.$loginid.'"');

    if (mysqli_num_rows($result)==1) {
        $_SESSION['loginid'] = $loginid;
        header ('Location: welcome.php');
    } else {
        $error = 'Invalid PIN';
    }
  }

//Logout script
if (isset($_GET['logout'])) {
session_unregister('loginid');
}

Моя таблица SQL выглядит так:

user_id    user_first    user_last    user_loginid
   1          Bob           Jones        123456

Я предполагаю, что правильный запрос для поиска соответствующего имени будет:

$username = mysqli_query($conn, 'SELECT user_first FROM hpnhusers WHERE user_loginid="'.$loginid.'"');

Но, к сожалению, я не могу понять, как собрать все это вместе, чтобы заставить его работать.

Все и любая помощь очень ценится, поскольку я все еще учусь.

1 Ответ

0 голосов
/ 04 мая 2018

Во-первых, не просто принимайте ввод пользователя и используйте его в запросе.

$loginId = filter_input(INPUT_POST, 'loginid', FILTER_SANITIZE_INTEGER);

Теперь создайте параметризованный запрос, не используйте ad-hoq запросы, когда вам не нужно

$query = $con->prepare("SELECT * FROM hpnhusers WHERE user_loginid = ?");
$query->bind_param("i", $loginId);
$query->execute();

$firstName = $query->fetch_object()->user_first;

У меня нет доступа к машине с установленным PHP, но я думаю, что приведенное выше должно получить имя пользователя для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...