首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据登录的管理员和级别选择数据,但会显示另一个级别的数据

根据登录的管理员和级别选择数据,但会显示另一个级别的数据
EN

Stack Overflow用户
提问于 2018-06-01 06:01:17
回答 1查看 26关注 0票数 -1

我目前正在制作一个多级登录系统。我有表格'admin' includes 'level'字段。我想让管理员重定向到基于‘管理’表上的‘级别’字段的页面。如果level为1,将重定向到SIPP-Litbang/admin.php页面,如果level为2,则将重定向到SIPP-Litbang/admin-pp-sipp-litbang.php.第一步,我在class.admin.php页面上制作方法,代码如下:

代码语言:javascript
复制
    public function login($email, $password)
    {

        try {
            $stmt = $this->conn->prepare("SELECT * FROM admin WHERE email_admin = :email AND pass_admin = MD5(:pass)
LIMIT 1");
            $stmt->bindParam(':email', $email, PDO::PARAM_STR);
            $stmt->bindParam(':pass', $password,PDO::PARAM_STR);
            $stmt->execute();

            $adminRow = $stmt->fetch();
            if ($stmt->rowCount() == 1) {

                $_SESSION['is_logged_in'] = true;
                $_SESSION['adminSession'] = $adminRow['id_admin'];
                $_SESSION['levelSession'] = $adminRow['level'];
                return true;


            } else {
                return false;
            }
        }
        catch(PDOException $e)
        {
            return FALSE;
        }
    }




        public function cekSession(){
            if (isset($_SESSION['adminSession'])&&$_SESSION['levelSession']==1) {

                header('Location: \SIPP-Litbang\admin.php');
                return true;
            }
            elseif (isset($_SESSION['adminSession'])&&$_SESSION['levelSession']==2) {

                header('Location: \SIPP-Litbang\admin-pp-sipp-litbang.php');
                return true;
            }
        }

和loginadmin.php页面:

代码语言:javascript
复制
 <?php
session_start();
include_once ('class.admin.php');
$admin = new Admin();
if (isset($_POST['login'])){
    $user = trim(strip_tags($_POST['email']));
    $pass = trim(strip_tags($_POST['pass']));

    if ($admin->login($user, $pass)){

    }
    else {
        echo "GAGAL LOGIN! Email atau Password Salah";
    }
}

登录过程已生效,例如,具有level 2的管理员将标题显示到SIPP-Litbang/admin-pp-sipp-litbang?modul=beranda.然后我想要显示管理level 2的详细信息,以下是来自admin -pp-sipp litbang.php页面的代码:

代码语言:javascript
复制
<?php

session_start();
require_once 'class.admin.php';
$user = new ADMIN();

$admin_level = isset($_SESSION['levelSession']);
$admin_id =  isset($_SESSION['adminSession']);

$stmt = $user->runQuery("SELECT * FROM admin WHERE id_admin=:admin_id AND level=:level");
$stmt->bindParam(":admin_id",$admin_id);
$stmt->bindParam(":level",$admin_level);
$stmt->execute();
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>

我尝试使用level 2回显管理员的名称,但它仅显示具有level 1的管理员的名称。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-01 06:36:11

代码语言:javascript
复制
$admin_level = isset($_SESSION['levelSession']);
$admin_id =  isset($_SESSION['adminSession']);

isset()返回true\false;在本例中,'true‘被强制转换为1,这解释了您看到的结果。

我假设您在这里需要的是::

代码语言:javascript
复制
if(isset($_SESSION['levelSession'])){
    $admin_level =$_SESSION['levelSession'];
}

if(isset($_SESSION['adminSession'])){
    $admin_id =  $_SESSION['adminSession'];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50633403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档