简体   繁体   English

PHP 用户级别/管理面板

[英]PHP User Level / Admin panel

I'm working for a code that differentiated between Members and Admins but when I login he just know me as an Admin.我正在为区分成员和管理员的代码工作,但是当我登录时,他只知道我是管理员。 I appreciated every help I can get!我感谢我能得到的每一个帮助!

$pdoStatement = $conn->prepare( 'SELECT email FROM tbl_user WHERE user_level = 1' ); 
$pdoStatement->execute(); 
$resultObject = $pdoStatement->fetchAll(); 

if ($resultObject[0] && $_SESSION['loged_in']) {    
  $_SESSION['is_admin'] = true;
  header('Location: index.php?page=admin.php');      
} else{
  $_SESSION['is_admin'] = false;
  $_SESSION['is_member'] = true;
  header('Location: index.php?page=member.php');
}  

Here is my table structure for tbl_user:这是我的 tbl_user 表结构:

id int(11)  Primarykey
state varchar(255)
f_name varchar(255)
l_name varchar(255)
email varchar(255)
conf_email varchar(255)
password varchar(255)
conf_password varchar(255)
answer varchar(255)
user_level int(11)

below that is my table structure for tbl_user_level下面是我的 tbl_user_level 表结构

id int(11)
name varchar(255)

id 1 (name) stands for Admin and 2 for Member id 1(名称)代表管理员,2 代表会员

EDIT: The code works fine now with the result in the comments.编辑:代码现在工作正常,结果在注释中。 I'm sorry for my mistakes I'm new here.我很抱歉我的错误我是新来的。 I'm improving for the maybe next questions.我正在改进下一个问题。 I wish ya a good day!祝你有美好的一天!

$pdoStatement = $conn->prepare(
    'SELECT COUNT(*) FROM tbl_user WHERE user_level = 1 AND email = ?'
); 
$pdoStatement->execute(array($_POST['email'])); 
$resultObject = $pdoStatement->fetchAll();

if($resultObject[0] == 1) { // COUNT(*) == 1 <=> admin user found
    header('Location: index.php?page=admin.php');
} else {
    header('Location: index.php?page=member.php');
}

Alternatively:或者:

$pdoStatement = $conn->prepare(
    'SELECT user_level FROM tbl_user WHERE email = ?'
); 
$pdoStatement->execute(array($_POST['email'])); 
$resultObject = $pdoStatement->fetchAll();

if(count($resultObject) === 0) {
    throw new Exception('User not found');
}

if($resultObject[0] == 1) { // user_level == 1
    header('Location: index.php?page=admin.php');
} else {
    header('Location: index.php?page=member.php');
}
$pdoStatement = $conn->prepare( 'SELECT * FROM tbl_user WHERE user_level = 1' ); 
$pdoStatement->execute(); 
$resultObject = $pdoStatement->fetchAll(); 

foreach ($resultObject as $data) {
 if ($data['email'] == $_POST['email']) {    
  header('Location: index.php?page=admin.php');      
} else{
  header('Location: index.php?page=member.php');
}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM