转换多用户登录

时间:2019-02-24 18:38:28

标签: php mysqli

我有一个用户表名称USERS user_id`, `username`, `user_type`, `password,并且我还创建了一个登录表单,它运行良好。但是我想通过user_type创建一个SESSION,这意味着当用户从同一登录页面登录时,他们将被重定向到具有SESSION ID的其他页面,例如“ 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 :(得分:0)

不是一个完整的答案,但可能足以让您完成其余的工作。如果没有,我很乐意提供更多帮助。 验证用户登录后,该代码将适合您现有的代码。

  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)。

以后添加

您已经在会话中存储了一个用户ID参考

$_SESSION['userId'] = $user_id;

只有在用户正确登录后才能设置 在后面的页面(例如,帐户或工程师随附的文件)中,您可能希望先检查它们是否已登录 您可以使用这样的一行来完成此操作

$user_was = $_SESSION['userId'];

然后,如果$ user_was =“”或不存在-用户尚未登录