Postingan lainnya
masalah session login pada codeigniter
halo temen", saya mau bertanya. Saya membuat login hak akses, saya udah berhasil tapi ada bug, "ketika saya masuk sebagai karyawan dan saya mengedit urlnya menjadi manager, halaman manager tersebut tetap tampil" minta solusinya dong
controller
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Login extends MX_Controller
{
function __construct() {
parent::__construct();
}
public function index(){
$this->load->view('login/v_login.php');
}
public function cek_login() {
$user = $_POST['karyawan_id'];
$pwd = $_POST['password'];
$this->load->model('mdl_login');
$result=$this->mdl_login->getlogin($user,$pwd)->row();
if($result)
{
$sess = array();
$sess['id'] = $result->karyawan_id;
$sess['level'] = $result->karyawan_level;
$sess['is_logged_in'] ='1';
$this->session->set_userdata($sess);
}
if($this->session->userdata('level') == 'karyawan') redirect('karyawan/');
elseif($this->session->userdata('level') == 'manager') redirect('manager/');
elseif($this->session->userdata('level') == 'client') redirect('client/');
else {
$this->session->set_flashdata('pesan','Oops !! Username or password error. Please try again');
redirect('login');
}
}
public function logout() {
$this->session->sess_destroy();
redirect('login/');
}
}
models
<?php
class Mdl_login extends CI_Model {
function __construct() {
parent::__construct();
}
public function getlogin($user,$pwd)
{
$this->db->where('karyawan_id',$user);
$this->db->where('karyawan_password',$pwd);
$query = $this->db->get('karyawan');
return $query;
}
}
0
1 Jawaban:
Kalau gitu masalahnya mas bisa kasih hak akses dimasing2 kontroller. Misal. controller karyawan nanti di beri hak akses, level karyawan dan manager yang bisa akses halaman tersebut. Bisa pakai sessionnya mas tsb
Contoh misal ini ada di kontroller karyawan ya, bisa taruh di construct
if($this->session->userdata('level') != 'karyawan'
|| $this->session->userdata('level') != 'manager') {
redirect kehalaman lain
}
0