繁体   English   中英

登录/登录后如何区分用户和管理员的主页?

[英]How to separate home page for user and admin after they login/signin?

我有问题,当我以用户或管理员身份登录时,它会 go 到同一页面,即 home.php。 所以我想要的解决方案是我想要拥有自己的用户和管理员 home.php。 这是我的 login.php 代码:

<?php
    session_start();
    include("functions.php");
?>
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">


    <title>Signin Template for Bootstrap</title>

    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">


  </head>

  <body class="text-center">
      <?php
      
        if(isset($_POST['signin'])){
            $password = $_POST['password'];
            $email = $_POST['email'];
            $query = "SELECT * from `accounts`;";
            if(count(fetchAll($query)) > 0){ //this is to catch unknown error.
                  foreach(fetchAll($query) as $row){
                    if($row['email']==$email&&$row['password']==$password){
                        $_SESSION['login'] = true;
                        $_SESSION['type'] = $row['type'];
                        header('location:home.php'); //Here is the problem
                    }else{
                        echo "<script>alert('Wrong login details.')</script>";
                    }
                }
            }else{
                echo "<script>alert('Error.')</script>";
            }

        }
      
      ?>
      <div class="container">
            <form method="post" class="form-signin">
              <img class="mb-4" src="https://getbootstrap.com/assets/brand/bootstrap-solid.svg" alt="" width="72" height="72">
              <h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
                
                
              <label for="inputEmail" class="sr-only">Email address</label>
              <input name="email" type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
              <label for="inputPassword" class="sr-only">Password</label>
              <input name="password" type="password" id="inputPassword" class="form-control" placeholder="Password" required>
             
              <button name="signin" class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
              <a href="signup.php" class="mt-5 mb-3 text-muted">Create an account</a>
            </form>
          </div>
      
      <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
  </body>
</html>

..................................................... ..................................................... ……

检查类型,然后相应地重定向:

$_SESSION['type'] = $row['type'];
if ($_SESSION['type'] == 'admin') {
  header('location:admin-home.php'); 
}
else {
  header('location:home.php'); 
}

我不知道您的文件夹/文件的结构,但这里有一个指针

检查if ($row['type'] == 'admin')然后重定向到管理路径,但是你喜欢header('location:admin.php'); 然后else if ($row['type'] == 'user')然后重定向到用户路径header('location:user.php');

然后,如果用户类型既不是,您可以使用“else”重定向到错误页面

使用更好的查询

$query = "SELECT * from `accounts` WHERE email='$email' AND password='$password' LIMIT 1;";

并使用它重定向到他们自己的主页。

if(isset($_SESSION['login'])){
    $type = $_SESSION['type'];
    if($type = "admin"){
        header('location: home-admin.php');
    }else{
        header('location: home-user.php');
    }
    exit();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM