我创建了具有多级功能的登录表单,多级代码正在运行,但是当我以管理员身份登录到我的帐户并直接转到管理控制台时,在会话上遇到了问题,但是我仍然可以直接使用返回页面再次登录页面,所以我错过了什么?
我的登录控制器:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Login extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('login_model');
$this->load->library('session');
$this->load->helper('url');
// $this->load->library('form_validation');
}
function index()
{
$datatitle['title'] = 'Login LPPM UTY';
$this->load->view('auth/tamplate/auth_header', $datatitle);
$this->load->view('auth/login_v');
$this->load->view('auth/tamplate/auth_footer');
}
function auth()
{
$username = htmlspecialchars($this->input->post('username', TRUE), ENT_QUOTES);
$password = htmlspecialchars($this->input->post('password', TRUE), ENT_QUOTES);
$cek_admin = $this->login_model->auth_admin($username,$password);
if ($cek_admin->num_rows() > 0) { //jika login sebagai admin
$data = $cek_admin->row_array();
$this->session->set_userdata('masuk', TRUE);
if ($data['level'] == '1')
{ //Akses admin
$this->session->set_userdata('akses', '1');
$this->session->set_userdata('user', $data['username']);
$this->session->set_userdata('name', $data['name']);
redirect('admin');
} else { // jika username dan password tidak ditemukan atau salah
$url = base_url();
echo $this->session->set_flashdata('notif', '<div class="alert
alert-danger" role="alert">Username Atau Password Salah
</div>');
redirect($url);
}
} else { //jika login sebagai dosen
$cek_dosen = $this->login_model->auth_dosen($username, $password);
if ($cek_dosen->num_rows() > 0) {
$data = $cek_dosen->row_array();
$this->session->set_userdata('masuk', TRUE);
($data['level'] == '2');
$this->session->set_userdata('akses', '2');
$this->session->set_userdata('user', $data['username']);
$this->session->set_userdata('name', $data['name']);
redirect('dosen');
} else { // jika username dan password tidak ditemukan atau salah
$url = base_url();
echo $this->session->set_flashdata('notif', '<div class="alert
alert-danger" role="alert">Username Atau Password Salah
</div>');
redirect($url);
}
}
}
function logout(){
$this->session->sess_destroy();
redirect('login');
}
}
模型login_model:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Login_model extends CI_Model
{
function auth_admin($username, $password)
{
$query = $this->db->query("SELECT * FROM admin_login WHERE username='$username' AND password=md5('$password') LIMIT 1");
return $query;
}
//cek username dan password pengajar
function auth_dosen($username, $password)
{
$query = $this->db->query("SELECT * FROM dosen_login WHERE username='$username' AND password=md5('$password') LIMIT 1");
return $query;
}
}
管理员控制器:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Login_model extends CI_Model
{
function auth_admin($username, $password)
{
$query = $this->db->query("SELECT * FROM admin_login WHERE username='$username' AND password=md5('$password') LIMIT 1");
return $query;
}
//cek username dan password pengajar
function auth_dosen($username, $password)
{
$query = $this->db->query("SELECT * FROM dosen_login WHERE username='$username' AND password=md5('$password') LIMIT 1");
return $query;
}
}
生成会话以了解管理员是否已登录-