在我的登录系统代码中,我有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";
}
}
?>
为什么其他两个用户可以访问我的管理页面? 怎么了?
答案 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
。