Friday, May 29, 2015

CodeIgniter: Membuat User Multi Login



tb_users.sql
CREATE TABLE IF NOT EXISTS `tb_users` (
     `ID_users` int(11) NOT NULL AUTO_INCREMENT,
     `username` varchar(30) NOT NULL,
     `password` varchar(50) NOT NULL,
     `level` varchar(30) NOT NULL,
     PRIMARY KEY (`ID_users`)
);

INSERT INTO `tb_users` (`ID_users`, `username`, `password`, `level`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin'),
(2, 'user', 'ee11cbb19052e40b07aac0ca060c23ee', 'user'),
(3, 'editor', '5aee9dbd2a188839105073571bee1b1f', 'editor');

./application/config/autoload.php
$autoload['libraries'] = array('database', 'form_validation', 'session');
$autoload['helper'] = array('url', 'html');

./application/config/config.php
$config['encryption_key'] = 'my_encryption_key';
./application/controllers/multi_access.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Multi_access extends CI_Controller {

     public function __construct() {
          parent::__construct();
     }

     public function index() {
          $validation = array(
               array('field' => 'username', 'rules' => 'required'),
               array('field' => 'password', 'rules' => 'required|md5')
          );
          $this->form_validation->set_rules($validation);
          if ($this->form_validation->run() == true) {
               $username = $this->input->post('username');
               $password = $this->input->post('password');

               $this->db->where('username', $username);
               $this->db->where('password', $password);
               $query = $this->db->get('tb_users');
               $row = $query->row();
               if ($query->num_rows() > 0) {
                    $this->session->set_userdata('is_login', $row->ID_users);
                    redirect('multi_access/check_login');
               }
          }
          $this->load->view('multi_login/form_login');
     }

     public function check_login() {
          $session = $this->session->userdata('is_login');
          $this->db->where('ID_users', $session);
          $query = $this->db->get('tb_users');
          $row = $query->row();
          if ($query->num_rows() > 0) {
               if ($row->level == 'admin') {
                    redirect('multi_access/success_login');
               } elseif ($row->level == 'user') {
                    redirect('multi_access/success_login');
               } elseif ($row->level == 'editor') {
                    redirect('multi_access/success_login');
               }
          } else {
               return true;
          }
     }

     public function success_login() {
          $session = $this->session->userdata('is_login');
          $this->db->where('ID_users', $session);
          $data['session'] = $this->db->get('tb_users')->row();
          $this->load->view('multi_login/after_login', $data);
     }

     public function logout() {
          $this->session->unset_userdata('is_login');
          $this->session->sess_destroy();
          redirect('multi_access');
     }

}

/* End of file multi_access.php */
/* Location: ./application/controllers/multi_access.php */

./application/views/mutli_login/form_login.php
<?=form_open();?>
<?=form_input(array('name' => 'username', 'placeholder' => 'Username', 'value' => set_value('username')));?>
<?=form_password(array('name' => 'password', 'placeholder' => 'Password', 'value' => set_value('Password')));?>
<?=form_submit('login', 'Login');?>
<?=form_close();?>

./application/views/mutli_login/success_login.php
<p>Username : <?=$session->username;?></p>
<p>Level : <?=$session->level;?></p>
<p style="float:right"><?=anchor('multi_access/logout', 'Logout');?></p>

Categories: ,

0 comments:

Post a Comment

luvne.com resepkuekeringku.com desainrumahnya.com yayasanbabysitterku.com

Copyright © Click | Powered by Blogger