Advertisement
Guest User

BCRYPT_CI

a guest
Apr 6th, 2020
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.48 KB | None | 0 0
  1. ====MODEL====
  2. <?php
  3. defined('BASEPATH') OR exit('No direct script access allowed');
  4.  
  5. class User_model extends CI_Model {
  6.  
  7.     // load database
  8.     public function __construct()
  9.     {
  10.         parent::__construct();
  11.         $this->load->database();
  12.     }
  13.  
  14.     // Listing
  15.     public function listing()
  16.     {
  17.         $this->db->select('users.*,
  18.                             bagian.nama_bagian');
  19.         $this->db->from('users');
  20.         // join
  21.         $this->db->join('bagian', 'bagian.id_bagian = users.id_bagian', 'left');
  22.         // End join
  23.         $this->db->order_by('users.id_user', 'desc');
  24.         $query = $this->db->get();
  25.         return $query->result();
  26.     }
  27.  
  28.     // Total
  29.     public function total()
  30.     {
  31.         $this->db->select('COUNT(*) AS total');
  32.         $this->db->from('users');
  33.         $query = $this->db->get();
  34.         return $query->row();
  35.     }
  36.  
  37.     // Login
  38.     public function login($username,$password)
  39.     {
  40.         $this->db->select('users.*,
  41.                             bagian.nama_bagian');
  42.         $this->db->from('users');
  43.         // join
  44.         $this->db->join('bagian', 'bagian.id_bagian = users.id_bagian', 'left');
  45.         // End join
  46.         // where
  47.         $this->db->where(array( 'username'  => $username,
  48.                                 'password'  => $password
  49.                             ));
  50.         $this->db->order_by('users.id_user', 'desc');
  51.         $query = $this->db->get();
  52.         return $query->row();
  53.     }
  54.  
  55.     // Detail
  56.     public function detail($id_user)
  57.     {
  58.         $this->db->select('users.*,
  59.                             bagian.nama_bagian');
  60.         $this->db->from('users');
  61.         // join
  62.         $this->db->join('bagian', 'bagian.id_bagian = users.id_bagian', 'left');
  63.         // End join
  64.         // where
  65.         $this->db->where('users.id_user', $id_user);
  66.         $this->db->order_by('users.id_user', 'desc');
  67.         $query = $this->db->get();
  68.         return $query->row();
  69.     }
  70.  
  71.     // Tambah
  72.     public function tambah($data)
  73.     {
  74.         $this->db->insert('users', $data);
  75.     }
  76.  
  77.     // Edit
  78.     public function edit($data)
  79.     {
  80.         $this->db->where('id_user', $data['id_user']);
  81.         $this->db->update('users', $data);
  82.     }
  83.  
  84.     // Delete
  85.     public function delete($data)
  86.     {
  87.         $this->db->where('id_user', $data['id_user']);
  88.         $this->db->delete('users', $data);
  89.     }
  90. }
  91.  
  92. /* End of file User_model.php */
  93. /* Location: ./application/models/User_model.php */
  94.  
  95. ====CONTROLLER====
  96. <?php
  97. defined('BASEPATH') OR exit('No direct script access allowed');
  98.  
  99. class Login extends CI_Controller {
  100.  
  101.     // load model
  102.     public function __construct()
  103.     {
  104.         parent::__construct();
  105.         $this->load->model('user_model');
  106.     }
  107.  
  108.     // Login page
  109.     public function index()
  110.     {
  111.         // Validasi input
  112.         $this->form_validation->set_rules('username','Username','required',
  113.             array(  'required'  => '%s harus diisi'));
  114.  
  115.         $this->form_validation->set_rules('password','Password','required',
  116.             array(  'required'  => '%s harus diisi'));
  117.  
  118.         if($this->form_validation->run()) {
  119.             $username   = strip_tags($this->input->post('username'));
  120.             $password   = strip_tags(password_hash($this->input->post('password'), PASSWORD_BCRYPT));
  121.             // Proses ke simple login
  122.             $this->simple_login->login($username,$password);
  123.         }
  124.         // End validasi
  125.  
  126.         $data = array(  'title'     => 'Halaman Login');
  127.         $this->load->view('login/list', $data, FALSE);
  128.     }
  129.  
  130.     // Logout
  131.     public function logout()
  132.     {
  133.         // Panggil library logout
  134.         $this->simple_login->logout();
  135.     }
  136.  
  137. }
  138.  
  139. /* End of file Login.php */
  140. /* Location: ./application/controllers/Login.php */
  141.  
  142. ====LIBRARY SIMPLE_LOGIN====
  143. <?php
  144. defined('BASEPATH') OR exit('No direct script access allowed');
  145.  
  146. class Simple_login
  147. {
  148.     protected $CI;
  149.  
  150.     public function __construct()
  151.     {
  152.         $this->CI =& get_instance();
  153.         // load user model
  154.         $this->CI->load->model('user_model');
  155.     }
  156.  
  157.     // Fungsi login
  158.     public function login($username,$password)
  159.     {
  160.         // Check user yang login
  161.         $user_login = $this->CI->user_model->login($username,$password);
  162.         // Kalau ada, maka masuk ke halaman dashboard
  163.         if($user_login) {
  164.             $id_user        = $user_login->id_user;
  165.             $id_bagian      = $user_login->id_bagian;
  166.             $nama_bagian    = $user_login->nama_bagian;
  167.             $username       = $username;
  168.             $nama           = $user_login->nama;
  169.             $akses_level    = $user_login->akses_level;
  170.             // Create session utk login
  171.             $this->CI->session->set_userdata('id_user',$id_user);
  172.             $this->CI->session->set_userdata('id_bagian',$id_bagian);
  173.             $this->CI->session->set_userdata('nama_bagian',$nama_bagian);
  174.             $this->CI->session->set_userdata('username',$username);
  175.             $this->CI->session->set_userdata('nama',$nama);
  176.             $this->CI->session->set_userdata('akses_level',$akses_level);
  177.             // Lalu redirect masuk ke halaman dashboard
  178.             $this->CI->session->set_flashdata('sukses', 'Anda berhasil login');
  179.             // Periksa user mengakses halaman mana sebelumnya
  180.             if($this->CI->session->userdata('pengalihan')) {
  181.                 // Jika, ada alihkan
  182.                 $pengalihan = $this->CI->session->userdata('pengalihan');
  183.                 redirect($pengalihan,'refresh');
  184.             }else{
  185.                 // Jika ga ada, default masuk ke halaman dasbor
  186.                 redirect(base_url('admin/dasbor'),'refresh');
  187.             }
  188.         }else{
  189.             // Kalau ga ada user yg cocok, suruh login lagi
  190.             $this->CI->session->set_flashdata('warning', 'Username/password salah');
  191.             redirect(base_url('login'),'refresh');
  192.         }
  193.     }
  194.  
  195.     // Fungsi logout
  196.     public function logout()
  197.     {
  198.         // Meng-unset semua session
  199.         $this->CI->session->unset_userdata('id_user');
  200.         $this->CI->session->unset_userdata('id_bagian');
  201.         $this->CI->session->unset_userdata('nama_bagian');
  202.         $this->CI->session->unset_userdata('username');
  203.         $this->CI->session->unset_userdata('nama');
  204.         $this->CI->session->unset_userdata('akses_level');
  205.         $this->CI->session->unset_userdata('pengalihan');
  206.         // Redirect ke halaman login
  207.         $this->CI->session->set_flashdata('sukses', 'Anda berhasil logout');
  208.         redirect(base_url('login'),'refresh');
  209.     }
  210.  
  211.     // Fungsi check login: seseorang sudah login atau belum
  212.     public function check_login($pengalihan)
  213.     {
  214.         // Check status login (kita ambil status username dan akses level)
  215.         if($this->CI->session->userdata('username') == "" &&
  216.             $this->CI->session->userdata('akses_level') == "")
  217.         {
  218.             $this->CI->session->set_flashdata('warning', 'Anda belum login');
  219.             redirect(base_url('login'),'refresh');
  220.         }
  221.     }
  222.  
  223.     // Fungsi check login: seseorang sudah login atau belum
  224.     public function cek_login($pengalihan)
  225.     {
  226.         // Check status login (kita ambil status username dan akses level)
  227.         if($this->CI->session->userdata('username') == "" &&
  228.             $this->CI->session->userdata('akses_level') == "")
  229.         {
  230.             $this->CI->session->set_flashdata('warning', 'Anda belum login');
  231.             redirect(base_url('login'),'refresh');
  232.         }
  233.     }
  234. }
  235.  
  236. /* End of file Simple_login.php */
  237. /* Location: ./application/libraries/Simple_login.php */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement