PHP-сессия с разрешениями

#php #session #permissions

#php #сеанс #разрешения

Вопрос:

У меня возникли проблемы с кодом.

Предполагается, что администратор может просматривать только страницу администратора

и пользователь для просмотра только страницы пользователя.

мой администратор все еще может просматривать страницу пользователя.

ниже приведена моя целевая страница

  <?php
    error_reporting(0);
    include("config.php");
    $host = "localhost"; //DB host 
$username = "root";  //DB Username 
$password = ""; //DB Password 
$db_name = "hklcanet_pha"; //DB Name 
$tbl_name = "users"; //Table name, where users are stored 
$dbconfig = mysqli_connect($host,$username,$password,$db_name);



$username = $_POST['username']; //Get username from login form 
$password = $_POST['password']; //Get password from login form 

$username = stripslashes($username); //Makes string safe 
$password = stripslashes($password); //Makes string safe 
$username = mysqli_real_escape_string($dbconfig, $username); //Makes string safer 
$password = mysqli_real_escape_string($dbconfig, $password); //Makes string safer 

$sql = "SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; //SQL Query 
$result = mysqli_query($dbconfig, $sql); //Executes Query 

$rows = mysqli_num_rows($result); //Count rows selected (1 if a username/password combo can be found) 

if($rows == 1){ 
        session_start(); //Starts a PHP session 
        $_SESSION['username'] = $username; //Allows $username to be used later 
            header("location: interphase1.php");
        $query  = "SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; 
        $result = mysqli_query($dbconfig, $query); 
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
        { 
        $permissions = $row['permissions']; //Gets the permissions of the user 
        $id = $row['id']; //Gets the ID of the user 
        } 
        $_SESSION['permissions'] = $permissions; //Allows $permissions to be used later 
        $_SESSION['id'] = $id; //Allows $id to be used later 
        $_SESSION['authenticated'] = 1; //Allows $id to be used later 

echo("Login Succesful");//Prints success message 
} 
else  
{ 
//echo("Invalid Username/Password"); 
} 
?>
  

Страница пользователя

     <?php
session_start(); 
$permissions = $_SESSION['permissions']; 
   if($_SESSION['authenticated'] != 1) 
   { 
   echo("You must be logged in"); 
   header("location:landing.php");
   } 
   else 
   { 
   if($permissions < 0) 
      { 

      header("location:quicksummary.php");
      echo("Your permissions are not high enough");
      } 
   } 

?>
  

страница администратора

 <?php 
session_start(); 
$permissions = $_SESSION['permissions']; 
   if($_SESSION['authenticated'] != 1) 
   { 
   header("location:landing.php");
   echo("You must be logged in"); 

   } 
   else 
   { 
   if($permissions < 1 ) 
      { 
      header("location:quicksummary.php");
      echo("Your permissions are not high enough");

      } 
   } 

?>
  

спасибо и признателен, если кто-нибудь может мне помочь в этом, все еще новичок в PHP-коде.

Комментарии:

1. $permissions < 0 означает? Сколько возможных значений у вас есть для $permissions

2. Извините, в моей базе данных разрешение администратора: 1, пользователя: 0

3. И после получения всех значений в $ _SESSION, можете ли вы поделиться результатом print_r($ _SESSION);

4. R u перенаправление на заголовок («location:landing.php «);???

5. Если аутентификация = null, да, она перенаправит на целевую страницу (страницу входа)