Можно зайти на страницу администратора, если вы вошли как пользователь - PullRequest
0 голосов
/ 09 октября 2018

Я работаю над сайтом, где я хочу иметь 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;
}    

welcomeuser

<?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;
}
?>

1 Ответ

0 голосов
/ 09 октября 2018

В вашем файле welcomeadmin.php вы не проверяете, действительно ли пользователь, пытающийся получить доступ к странице, является администратором.Вы можете добавить чек, как в вашем login.php файле, с простым оператором if после проверки, если пользователь вошел в систему. Просто добавьте этот фрагмент кода после вашего первого If в файле welcomeadmin.php.

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