Направление пользователей на указание c страниц при входе в систему PHP - PullRequest
0 голосов
/ 24 февраля 2020

В моем текущем проекте в PHP и MySQL у меня есть база данных двух разных пользователей - студентов и преподавателей -.

Когда я ввожу имя пользователя и пароль, я хочу, чтобы система могла различать пользователь является учеником или учителем, так что он может направить пользователя на соответствующую страницу. Как я могу сделать это в PHP? Должен ли я создать 2 таблицы в одной базе данных или 2 таблицы в другой базе данных.

логин. php

<?php 

session_start();

// variable declaration
$username = "";
$password ="";
$query = "";
$errors = array(); 
$_SESSION['success'] = "";

// connect to database
$db = mysqli_connect('localhost', 'root', '', 'loginstudent');

// LOGIN USER
if (isset($_POST['login_user'])) {
    $username = mysqli_real_escape_string($db, $_POST['username']);
    $password = mysqli_real_escape_string($db, $_POST['password']);

    if (empty($username)) {
        array_push($errors, "Username is required");
    }
    if (empty($password)) {
        array_push($errors, "Password is required");
    }

    if (count($errors) == 0) {
        $password = md5($password);
        $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
        $results = mysqli_query($db, $query);


        if (mysqli_num_rows($results) == 1) {   
            $_SESSION['username'] = $username;
            header('location: student.html');

        }else {

            array_push($errors, "Wrong username/password combination");
        }
    }
}

?>

1 Ответ

2 голосов
/ 24 февраля 2020

Чтобы сделать это правильно, вы должны добавить столбец в вашу таблицу пользователей. Для этого примера я буду называть столбец user_type, а для каждого пользователя я буду хранить «ученик» или «учитель». Начиная с того момента, когда вы выполнили свой запрос:

$results = mysqli_query($db, $query);
$row = mysqli_fetch_assoc($results); // get an associative array from the row returned

if('student' == $row['user_type']) {
    header('Location: student.html');
    exit();
} elseif ('teacher' == $row['user_type']) {
    header('Location: teacher.html');
    exit();
} else {
    // not a valid user
    header('Location: register.html');
    exit();
}

ПРЕДУПРЕЖДЕНИЕ Под вашим исходным постом я предоставил несколько комментариев относительно безопасности вашего кода. Вы должны прочитать и следовать всем этим предупреждениям и научиться писать безопасный код с самого начала.

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