Выберите данные на основе администратора и уровня, который вошел в систему, но он отображает данные с другого уровня - PullRequest
0 голосов
/ 01 июня 2018

В настоящее время я делаю систему входа в систему с многоуровневым.У меня есть таблица 'admin' включает в себя 'level' поле.Я хочу, чтобы администратор перенаправлял на страницу на основе поля 'level' в таблице 'admin'.Если уровень 1 будет перенаправлен на страницу SIPP-Litbang / admin.php , то если уровень 2 будет перенаправлен на SIPP-Litbang / admin-pp-sipp-litbang.php .Первый шаг, я делаю метод на странице class.admin.php, вот коды:

    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:

 <?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";
    }
}

Процесс входа в систему сработал, дляНапример, администратор с уровень 2 отправит заголовок в SIPP-Litbang / admin-pp-sipp-litbang? modul = beranda.Затем я хочу отобразить детали администратора уровень 2 , вот коды из страницы admin-pp-sipp-litbang.php:

<?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);
?>

Я пытаюсь повторить имя администраторас уровень 2 , но он просто отображает имя администратора с уровень 1 .Я что-то упустил?

1 Ответ

0 голосов
/ 01 июня 2018
$admin_level = isset($_SESSION['levelSession']);
$admin_id =  isset($_SESSION['adminSession']);

isset() возвращает true \ false;в вашем случае «true» приводится к 1, что объясняет результаты, которые вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...