javascript - 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>
我不知道该怎么做。我正在考虑将它们发送到一个页面(即主页),该页面将它们重定向到正确的仪表板。这是正确的还是有更好的方法来解决这个问题?
解决方案
在您的主页或仪表板页面上,您可以执行以下操作:
<?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';
}
推荐阅读
- c# - 如何从 winform 中删除一个绘制的对象?
- flutter - Flutter 中的下拉菜单视图
- linux - 是否可以在 Flutter 中编写特定于 Windows/Linux/MacOS 的代码?
- java - 无法从双重转换为类
- makefile - 如何用循环简化这个 Makefile
- python - 读取多个 .csv 文件并提取(在新的 .csv 文件中)与特定列中的非空单元格对应的所有行
- c++ - 如何让代码提示用户输入信息而不是硬接线?
- controller - Sails.js SyntaxError: await 仅在异步函数中有效
- selenium - 盒子阻塞元素有问题
- angular - Docker .net core angular identityserver 4 应用程序无法登录