如果以用户身份登录,可以转到管理页面

Can go to admin page if logged in as user

我在一个网站上工作,我想要有 2 个页面。我有登录页面,一个 welcomeadmin.php 和一个 welcomeuser.php

如果我使用管理员登录,我会被重定向到管理页面,如果我以用户身份登录,我会被重定向到用户页面,这很好。

问题是当我以用户登录并被重定向到用户页面时,我还可以访问welcomeadmin.php 通过在我的 URL.

中更改它

login.php:

session_start();

// Check if the user is already logged in, if yes then redirect him to 
welcome page
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
if($_SESSION['functie'] == 'admin'){
    header("location: welcomeadmin.php");
}
else{
    header("location: welcomeuser.php");
}

exit;
}   

welcomeadmin.php

if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){\
header("location: login.php");
exit;
}    

欢迎用户

<?php
// Initialize the session
session_start();

// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: login.php");
exit;
}
?>

在您的 welcomeadmin.php 文件中,您没有检查尝试访问该页面的用户是否确实是管理员。在检查用户是否登录后,您可以使用简单的 if 语句在 login.php 文件中添加检查。只需在 welcomeadmin.php 文件中的第一个 If 之后添加此代码段。

if (!isset($_SESSION["functie"]) || $_SESSION["functie"] != "admin") {
    header("location: welcomeuser.php");
    exit;
}