首页 > 解决方案 > Codeigniter:我无法登录到官员仪表板,但在管理仪表板中我可以登录

问题描述

当我以管理员身份登录时,它成功进入管理仪表板。但是,当我以军官身份登录时,重定向到军官仪表板失败。

Petugas.php

应用程序/控制器/Petugas.php

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Petugas extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        // cek session yang login, jika session status tidak sama dengan session petugas_login,maka halaman akan di alihkan kembali ke halaman login.   
        if ($this->session->userdata('status') != "petugas_login") {
            redirect(base_url() . 'login?alert=belum_login');
        }
    }
    function index()
    {
        $this->load->view('petugas/v_header');
        $this->load->view('petugas/v_index');
        $this->load->view('petugas/v_footer');
    }
}

v_header.php

应用程序/views/petugas/v_header.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Petugas - Sistem Informasi Perpustakaan MTS. Muhammadiyah 1 Depok</title>
    <!-- css bootstrap -->
    <link rel="stylesheet" type="text/css" href="<?php echo base_url() . 'assets/css/bootstrap.css' ?>">

    <!-- css datatables -->
    <link rel="stylesheet" type="text/css" href="<?php echo base_url() . 'assets/DataTables/datatables.css' ?>">

    <!-- icon font awesome -->
    <link rel="stylesheet" type="text/css" href="<?php echo base_url() . 'assets/css/awesome/css/font-awesome.css' ?>">

    <!-- jquery dan bootstrap js -->
    <script type="text/javascript" src="<?php echo base_url() . 'assets/js/jquery.js' ?>"></script>
    <script type="text/javascript" src="<?php echo base_url() . 'assets/js/bootstrap.js' ?>"></script>

    <!-- js datatables -->
    <script type="text/javascript" src="<?php echo base_url() . 'assets/DataTables/datatables.js' ?>"></script>
</head>

<body>

    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
        <div class="container-fluid"> <a class="navbar-brand" href="<?php echo base_url() . 'petugas'; ?>">Perpustakaan MTS.Muhammadiyah 1 Depok</a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" datatarget="#navbarText" aria-controls="navbarText" aria-expanded="false" arialabel="Toggle navigation"> <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarText">
                <ul class="navbar-nav mr-auto">
                    <li class="nav-item"> <a class="nav-link" href="<?php echo base_url() . 'petugas'; ?>"><i class="fa fa-home"></i> Dashboard</a> </li>
                    <li class="nav-item"> <a class="nav-link" href="<?php echo base_url() . 'petugas/anggota'; ?>"><i class="fa fa-users"></i> Anggota</a>
                    </li>
                    <li class="nav-item"> <a class="nav-link" href="<?php echo base_url() . 'petugas/buku'; ?>"><i class="fa fa-book"></i> Buku</a>
                    </li>
                    <li class="nav-item"> <a class="nav-link" href="<?php echo base_url() . 'petugas/peminjaman'; ?>"><i class="fa fa-book"></i> Peminjaman</a>
                    </li>
                    <li class="nav-item"> <a class="nav-link" href="<?php echo base_url() . 'petugas/peminjaman_laporan'; ?>"><i class="fa fa-book"></i> Laporan Peminjaman</a>
                    </li>
                    <li class="nav-item"> <a href="<?php echo base_url() . 'petugas/ganti_password' ?>" class="navlink"><i class="fa fa-lock"></i> Ganti Password</a>
                    </li>
                </ul>

                <span class="navbar-text mr-3 text-center"> Halo, <?php echo $this->session->userdata('username'); ?> [Petugas] </span>

                <a href="<?php echo base_url() . 'petugas/logout' ?>" class="btn btn-outlinelight ml-1"><i class="fa fa-power-off"></i> KELUAR</a>
            </div>
        </div>

    </nav>

    <br />
    <br />

v_index.php

应用程序/views/petugas/v_index.php

<div class="container">
    <div class="jumbotron text-center">
        <div class="col-sm-8 mx-auto">
            <h1>Selamat datang!</h1>
            <p>Ini merupakan sistem informasi perpustakaan <b>MTS.Muhammadiyah 1 Depok</b>.</p>
            <p> Anda telah login sebagai <b><?php echo $this->session->userdata('nama'); ?></b> [petugas]. </p>
        </div>
    </div>
    <div class="card">
        <div class="card-header"> Dashboard </div>
        <div class="card-body"> Halo </div>
    </div>
</div>

v_footer.php

应用程序/views/petugas/v_footer.php

<script type="text/javascript">
    $(document).ready(function() {
        $('.table-datatable').DataTable();
    });
</script>
</body>

</html>

登录.php

应用程序/控制器/Login.php

<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Login extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }
    // menampilkan halaman login  
    public function index()
    {
        $this->load->view('v_login');
    }
    // validasi login  
    // function ini yang akan dieksekusi sebagai form handler dari form login kita tadi.
    public function login_aksi()
    {
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $sebagai = $this->input->post('sebagai');

        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');

        if ($this->form_validation->run() != false) {
            $where = array(
                'username' => $username,
                'password' => md5($password)
            );

            if ($sebagai == "admin") {
                $cek = $this->m_data->cek_login('admin', $where)->num_rows();
                $data = $this->m_data->cek_login('admin', $where)->row();
                if ($cek > 0) {
                    $data_session = array(
                        'id' => $data->id,
                        'username' => $data->username,
                        'status' => 'admin_login'
                    );
                    $this->session->set_userdata($data_session);
                    redirect(base_url() . 'admin');
                } else {
                    redirect(base_url() . 'login?alert=gagal');
                }
            } else if ($sebagai == "petugas") {
                $cek = $this->m_data->cek_login('petugas', $where)->num_rows();
                $data = $this->m_data->cek_login('petugas', $where)->row();
                if ($cek > 0) {
                    $data_session = array(
                        'id' => $data->id,
                        'nama' => $data->nama,
                        'username' => $data->username,
                        'status' => 'petugas_login'
                    );
                    $this->session->set_userdata($data_session);
                    redirect(base_url() . 'petugas');
                } else {
                    redirect(base_url() . 'login?alert=gagal');
                }
            }
        } else {
            $this->load->view('v_login');
        }
    }
}

v_login.php

应用程序/视图/v_login.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Login - Sistem Informasi Perpustakaan MTS.Muhammadiyah 1 Depok</title>
    <link rel="stylesheet" type="text/css" href="<?php echo base_url() . 'assets/css/bootstrap.css' ?>">
    <script type="text/javascript" src="<?php echo base_url() . 'assets/js/jquery.js' ?>"></script>
    <script type="text/javascript" src="<?php echo base_url() . 'assets/js/bootstrap.js' ?>"></script>
</head>

<body class="bg-dark">

    <div class="container">
        <br /><br /><br /><br />

        <h3 class="font-weight-normal text-center text-white">SISTEM INFORMASI</h3>
        <h2 class="font-weight-normal text-center text-white mb-5"><b>PERPUSTAKAAN</b></h2>

        <div class="col-md-4 offset-md-4">
            <div class="card">
                <div class="card-body">
                    <?php
                    if (isset($_GET['alert'])) {
                        if ($_GET['alert'] == "gagal") {
                            echo "<div class='alert alert-danger font-weight-bold text-center'>LOGIN GAGAL!</div>";
                        } else if ($_GET['alert'] == "belum_login") {
                            echo "<div class='alert alert-danger font-weight-bold text-center'>SILAHKAN LOGIN TERLEBIH DULU!</div>";
                        } else if ($_GET['alert'] == "logout") {
                            echo "<div class='alert alert-success font-weight-bold text-center'>ANDA TELAH LOGOUT!</div>";
                        }
                    }
                    ?>

                    <h4 class="font-weight-bold text-center mb-3 mt-3">LOGIN</h4>

                    <!-- validasi error -->
                    <?php echo validation_errors(); ?>

                    <form method="post" action="<?php echo base_url() . 'login/login_aksi'; ?>">
                        <div class="form-group">
                            <label for="username">Username</label>
                            <input name="username" type="text" class="form-control" placeholder="Masukan username">
                        </div>
                        <div class="form-group">
                            <label for="password">Password</label>
                            <input type="password" name="password" class="form-control" placeholder="Masukkan Password">
                        </div>
                        <div class="form-group">
                            <label for="sebagai">Login Sebagai : </label>
                            <select name="sebagai" class="form-control">
                                <option value="admin">Admin</option>
                                <option value="petugas">Petugas</option>
                            </select>
                        </div>
                        <button type="submit" class="btn btn-primary">Login</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>

</html>

标签: phpcodeigniter

解决方案


请在使用户登录时检查您在会话中保存的内容。

在您的“Petugas” 控制器 构造函数中,您似乎正在检查会话中保存的状态参数(在使用户登录您的应用程序/站点时必须保存该参数),

请检查那里保存的值。

是否保存在会话状态参数中的“petugas_login” 。


推荐阅读