преобразование многопользовательского входа - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть имя таблицы пользователей USERS user_id`, `username`, `user_type`, `password, и я также создаю форму входа, она работает хорошо.Но я хочу создать SESSION по user_type, я имею в виду, что когда пользователь войдет в систему с одной и той же страницы входа, он будет перенаправлен на разные страницы с идентификатором SESSION, например «user and admin page».Я пробовал разными способами, но это не работает.Вот мой недавний код, как я могу использовать user_type, любая помощь будет оценена!HTML-форма

<input type="text" class="form-control" id="username" name="username" placeholder="Username" autocomplete="off" />
<input type="password" class="form-control" id="password" name="password" placeholder="Password" autocomplete="off" />
<button type="submit" class="btn btn-default"> <i class="glyphicon glyphicon-log-in"></i> Sign in</button>

`

session_start();

if(isset($_SESSION['userId'])) {
header('location: http://localhost/stock/dashboard.php');   
}

$errors = array();

if($_POST) {        

$username = $_POST['username'];
$password = $_POST['password'];

if(empty($username) || empty($password)) {
    if($username == "") {
        $errors[] = "Username is required";
    } 
    if($password == "") {
    $errors[] = "Password is required";
    }
} else {
$sql = "SELECT * FROM users WHERE username = '$username'";
    $result = $connect->query($sql);
    if($result->num_rows == 1) {
        $password = md5($password);
        // exists
        $mainSql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
        $mainResult = $connect->query($mainSql);

        if($mainResult->num_rows == 1) {
    $value = $mainResult->fetch_assoc();
    $user_id = $value['user_id'];
    $_SESSION['userId'] = $user_id;
    header('location: 
    http://localhost/stock/dashboard.php'); 
    } else{$errors[] = "Incorrect username/password combination";
        } 
    } else {        
    $errors[] = "Username doesnot exists";      
    } // /else
} // /else not empty username // password

} // /if $_POST
?>`  

1 Ответ

0 голосов
/ 24 февраля 2019

Не полный ответ, но, возможно, достаточно для вас, чтобы сделать все остальное.Если нет, я с радостью помогу больше.Код будет соответствовать вашему существующему коду после проверки имени пользователя.

  switch ($usergroup)
  {
    case "ACCOUNTS":
        $rootfile = dirname(__FILE__).DIRECTORY_SEPARATOR."accounts.html.php";
    break;

    case "ENGINEERS":
        $rootfile = dirname(__FILE__).DIRECTORY_SEPARATOR."engineers.html.php";
    break;
  }
  if (file_exists($rootfile))
  {
    include $rootfile;
  }
  else 
  {
    echo "<br> ROOT FILE DOES NOT EXIST <br>";
  }

Вы должны получить UserGroup (или UserType) в переменной перед этим кодом.

ДОБАВЛЕНОПОЗЖЕ

Вы уже сохранили ссылку на идентификатор пользователя в сеансе с

$_SESSION['userId'] = $user_id;

Это должно быть установлено, только если пользователь правильно вошел в систему На последующих страницах (например, включенный файл для учетных записейили инженеры) вы можете сначала проверить, что они уже вошли в систему. Вы можете сделать это с помощью строки вроде этой

$user_was = $_SESSION['userId'];

Тогда, если $ user_was = "" или не существует - пользователь не вошел в систему

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