首页 > 解决方案 > PHP在多个页面上重定向用户

问题描述

我正在为工作构建一个管理站点,这是我的第一个 PHP 项目。我已经能够让登录页面正常工作,登录后它将带您进入销售、管理员或总监页面。

if (count($errors) == 0) {
    $password = md5($password);

    $query = "SELECT * FROM users WHERE username='$username' AND password='$password' LIMIT 1";
    $results = mysqli_query($db, $query);

    if (mysqli_num_rows($results) == 1) { // user found
        // check if user is admin or user
        $logged_in_user = mysqli_fetch_assoc($results);
        if ($logged_in_user['user_type'] == 'admin') {

            $_SESSION['user'] = $logged_in_user;
            $_SESSION['success']  = "You are now logged in";
            header('location: dashboard/admin.php');          
        }elseif ($logged_in_user['user_type'] == 'director') {

            $_SESSION['user'] = $logged_in_user;
            $_SESSION['success']  = "You are now logged in";

            header('location: dashboard/director.php');
        }elseif($logged_in_user['user_type'] == 'user'){
            $_SESSION['user'] = $logged_in_user;
            $_SESSION['success']  = "You are now logged in";

            header('location: dashboard/sales.php');
        }
    }else {
        array_push($errors, "Wrong username/password combination");
    }
}

我遇到的问题是所有 3 种用户类型都将使用 3 个相同的页面。例如,一个页面将创建一个客户。当他们输入此信息后,它会将他们带到一个页面,说明成功或有什么错误。当他们按下主页按钮或徽标时,我想将他们带回仪表板。因此,如果您以销售身份登录,请返回销售仪表板。

<a href="home.php">
    <img class="img-fluid" src="../files/assets/images/logo.png" alt="Theme-Logo">
</a>

我不知道该怎么做。我正在考虑将它们发送到一个页面(即主页),该页面将它们重定向到正确的仪表板。这是正确的还是有更好的方法来解决这个问题?

标签: javascriptphpredirect

解决方案


在您的主页或仪表板页面上,您可以执行以下操作:

<?php

function get_user_type()
{
// Your implementation here.
}
switch(get_user_type()) {
    case 'director':
        include 'director_dashboard.php';
        break;
    // and so on
    default:
        include 'not_logged_in_dashboard.php';
}

推荐阅读