为了账号安全,请及时绑定邮箱和手机立即绑定

Codeigniter 中的登录会话问题

Codeigniter 中的登录会话问题

青春有我 2023-10-30 20:47:26
我创建具有多级别功能的登录表单,多级别的代码正在工作,但是当我以管理员身份登录我的帐户并直接进入管理仪表板时,我在会话上遇到问题,但我仍然可以使用直接登录页面的后页再说一遍,我错过了什么?我的登录控制器:<?phpdefined('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);            }
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

检查构造中的会话


function __construct ()

    {

        parent ::__construct ();


        if ($this -> session -> userdata ( "akses" ) == 1) {

            redirect ( "admin/dashboard" , "refresh" );

        }

        if ($this -> session -> userdata ( "akses" ) == 2) {

            redirect ( "user/dashboard" , "refresh" );

        }

    }


查看完整回答
反对 回复 2023-10-30
?
SMILET

TA贡献1796条经验 获得超4个赞

生成一个会话以了解管理员是否登录--


$this->session->set_userdata('is_admin_login', 1)

检查会话是否在您的登录网址(控制器)上生成--


function index(){

    if ($this->session->userdata('is_admin_login')) {

        redirect('admin/home');  // redirect to desired location

    }


    $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');

}


查看完整回答
反对 回复 2023-10-30
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信