登录系统有3个级别的用户PHP

时间:2016-07-26 18:32:44

标签: php mysqli

在我的登录系统代码中,我有3个用户。

但其他用户可以访问我的管理页面。

我希望我的管理页面只能供用户级别= 1的用户访问。

我的代码。

<?php
session_start();
include 'includes/dbh.php';
//You can add more params here for more register options
$email= $_POST['email'];
$password= $_POST['password'];


$sql =("SELECT * FROM usuarios WHERE email='$email' 
AND password='$password'");
$result = $conn->query($sql);
if(!$row = $result->fetch_assoc()) {
$_SESSION['errorLogin']="Usuario ou senha inválida";
echo "".$_SESSION['errorLogin'];
header("Location: login.php");

}else{


$_SESSION['userName']=          $row ['nome'];
$_SESSION['userLName']=         $row ['sobrenome'];
$_SESSION['userLevel']=         $row ['userLevel'];
$_SESSION['useremail']=         $row ['email'];
$_SESSION['password']=          $row ['password'];
$_SESSION['userContact']=       $row ['contato'];
$_SESSION['userContact2']=      $row ['contato2'];
$_SESSION['role']=              $row ['login'];
  if($_SESSION['userLevel'] == 1){
   header("Location: adm/painel.php");
   }else{ header("Location: cliente.php"); 

   }
   if($_SESSION['userLevel'] == 2){
   header("Location: rep_page.php");
   }else{ header ("Location: rep_page.php");}

   if($_SESSION['userLevel'] == 3){
   header("Location: cliente.php");

   }else{
   echo "Your not logged in";

   }
   }
   ?>

为什么其他两个用户可以访问我的管理页面? 怎么了?

3 个答案:

答案 0 :(得分:2)

你必须从每个页面开始使用相同的检查代码。我的意思是 在admin_panel.php中,就像这样。

if($_SESSION['userLevel'] == 1){
 //here please place the entire page code
}else{ 
 echo "you have no access this page";
}

答案 1 :(得分:1)

我认为您的问题是if和else语句。在您的代码中,如果userLevel为NOT 1,则将其标题为cliente.php而不查看之后的代码。

  if($_SESSION['userLevel'] == 1){
   header("Location: adm/painel.php");
   }elseif($_SESSION['userLevel'] == 2){
   header("Location: rep_page.php");
   }elseif($_SESSION['userLevel'] == 3){
   header("Location: cliente.php");
   }else{
   echo "Your not logged in";
   }

答案 2 :(得分:1)

header不会停止执行脚本,您必须立即添加exit

if($_SESSION['userLevel'] == 1){
   header("Location: adm/painel.php");
   exit;                                     //◄■■■■■■■■■■■■■■■■■■■■■
   }else{ header("Location: cliente.php"); 
          exit;                              //◄■■■■■■■■■■■■■■■■■■■■■
   }

找到所有header并在其后添加exit