Anda di halaman 1dari 18

Membuat User Multi Login

dengan CodeIgniter

Written by Dika on 04 Jan 2015

Adaw haha liburan tinggal sehari lagi nih, ga kerasa


liburan akhir taun udah hampir berakhir.. dan besok kembali lagi kesekolah,
arghhh remed fisika & mtk yng bkin pusing ni pala :( yasudah sekarang mending
bikin tutorial dulu, daripada pusing dan cuma buang buang waktu.. mending
refreshing di depan lepi aja haha :D

Kali ini saya bakal bikin tutorial multi user login dari codeigniter kalo ada yng
belum tau codeigniter itu apa, bisa liat liat dulu penjelasannya di
tutorial codeigniter kalo udah tau, yo mari lanjut kita ngoding haha B-) Oh iya saya
akan membuat multi user login dengan membuat library login sendiri.

Oh Iya BTW Siapin dulu perlengkapannya B-)


 CodeIgniter (Framework PHP)
 XAMPP (WebServer)
 Sublime Text (TextEditor)

Disini saya akan membuat 2 Hak akses yaitu :

1. Admin
2. User

Oke sebelum ngoding pertama-tama kita kenalan dulu dengan yang namanya
Library Session

Library yang paling penting dalam prosess login itu adalah Session ,
sebenarnya PHP sudah menyediakan Fungsi Session , tapi Framework
CodeIgniter sudah membungkusnya dengan rapi di Library nya menjadi
lebih mudah di keluarkan.

Untuk menampilkan atau memanggil Library Session anda cukup menyisipkan


code :

<?php

..

..

$this->load->library('session');
PHP
Copy

atau bisa memanggil di semua controler dengan menyisipkan code di bawah


di /application/config/autoload.php
<?php

..

..

$autoload['libraries'] = array('session');
PHP
Copy

Udah deh cukup segitu aja tentang librarynya, padahal masih banyak library di
code igniter. Tapi utuk kali ini cukup session dulu aja hehe :D ayo kita mulai
tutorial nya B-)

Pertama tama kita buat dulu databasenya dengan nama lat_login.

create database lat_login;


SQL
Copy

kalo udah buat databasenya, mari kita buat table nya dengan nama tb_pengguna.

CREATE TABLE IF NOT EXISTS `tb_pengguna` (

`username` varchar(50) NOT NULL,

`password` varchar(32) NOT NULL,

`nama` varchar(100) DEFAULT NULL,

`level` int(1) NOT NULL,

`status` int(1) NOT NULL,

PRIMARY KEY (`username`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;


SQL
Copy
lalu ketika tabel udah di buat, kita isi data di tabel tersebut.

INSERT INTO `tb_pengguna` (`username`, `password`, `nama`, `level`,


`status`) VALUES

('ferdhika31', MD5( 'tamvan' ), 'Ferdhika Ganteng', 1, 1),

('nurjaman', MD5( 'tamvan' ), 'Si Tamvan', 2, 1);


SQL
Copy

Nah database udah dibuat , sekarang kita main di Code Igniternya :D

Ayo sekarang mari kita ubah pengaturan databasenya di code igniter, ubah di
file /application/config/database.php

<?php

..

..

$db['default']['hostname'] = 'localhost'; //host database

$db['default']['username'] = ''; //username database

$db['default']['password'] = ''; //password database (default kosong


jika di xampp)

$db['default']['database'] = ''; //nama database yang tadi kita buat

$db['default']['dbdriver'] = 'mysql';
PHP
Copy
menjadi :

<?php

..

..

$db['default']['hostname'] = 'localhost'; //host database

$db['default']['username'] = 'root'; //username database (default root


jika di xampp)

$db['default']['password'] = ''; //password database (default kosong


jika di xampp)

$db['default']['database'] = 'lat_login'; //nama database yng tadi kita


buat

$db['default']['dbdriver'] = 'mysql';
PHP
Copy

Udah gitu, ubah pengaturan yang di perlukan saat mebuat sistem multi user login.

Pertama base_url sama encryption_key nya di /application/config/config.php

<?php

..

..

$config['base_url'] = '/ci/multi_login/'; //ini folder dimana kita


menaruh web nya saya simpan di htdocs/ci/multi_login

..

..
$config['encryption_key'] = 'ferdhika_ganteng';
PHP
Copy

Kedua libraries sama helper nya di /application/config/autoload.php

<?php

..

..

$autoload['libraries'] = array('database','session','auth');

..

..

$autoload['helper'] = array('url','form');
PHP
Copy

Nah selesai ngubah pengaturan selanjutnya kita buat Modelnya dan beri
nama m_login.php saja biar ga pusing :D (simpen di folder models ya bro)

<?php if ( ! defined('BASEPATH')) exit('No direct script access


allowed');

class M_login extends CI_Model{

function __construct(){

parent::__construct();

$this->tbl = "tb_pengguna";

}
function cek_user($username="",$password=""){

$query = $this->db->get_where($this-
>tbl,array('username' => $username, 'password' => $password));

$query = $query->result_array();

return $query;

function ambil_user($username){

$query = $this->db->get_where($this->tbl,
array('username' => $username));

$query = $query->result_array();

if($query){

return $query[0];

}
PHP
Copy

Setelah model di buat, kedua kita buat dulu view nya (tampilan login) beri
nama form_login.php dan simpan di folder View

<html>
<head>

<title>Form Login</title>

<style>

body{

font-family:Calibri;

margin:50px;

#form-login{

margin:auto;

width:320px;

padding:10px;

border:1px #ccc solid;

font-size:18px;

font-weight:bold;

color:#555;

.inputan{

width: 100%;

padding:3px;

font-family:Consolas;
border:1px solid #ccc;

.tombol{

padding:5px;

background:#555;

color:#FFF;

font-weight:bold;

font-family:Consolas;

font-size:15px;

border:#eee 1px solid;

.error{

color:#555;

font-size:11px;

</style>

</head>

<body>

<form action="<?php echo base_url();?>login/do_login"


method="post">
<div id="form-login">

<center>Administrator Page - Plase Login


First</center>

<table border="0" cellpadding="4">

<tr>

<td>Username</td>

<td>:</td>

<td><input type="text" size="40"


name="uname" class="inputan"> <?php echo form_error('username');?></td>

</tr>

<tr>

<td>Password</td>

<td>:</td>

<td><input type="password"
size="40" name="pass" class="inputan"> <?php echo
form_error('password');?></td>

</tr>

<tr>

<td>&amp;nbsp;</td>

<td>&amp;nbsp;</td>

<td><input type="submit"
name="login" value="Login" class="tombol"> </td>

</tr>
</table>

</div>

</form>

</body>

</html>
HTML
Copy

Selanjutnya kita buat controllernya, beri nama login.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access


allowed');

class Login extends CI_Controller{

function __construct(){

parent::__construct();

$this->load->model('m_login'); //memasukkan file model


m_login.php ke dalam controller

function index(){

$session = $this->session->userdata('isLogin');
//mengabil dari session apakah sudah login atau belum
if($session == FALSE) //jika session false maka akan
menampilkan halaman login{

$this->load->view('login_form');

}else{ //jika session true maka di redirect ke halaman


dashboard

redirect('dashboard');

function do_login(){

$username = $this->input->post("uname");

$password = $this->input->post("pass");

$cek = $this->m_login-
>cek_user($username,md5($password)); //melakukan persamaan data dengan
database

if(count($cek) == 1){ //cek data berdasarkan username


&amp; pass

foreach ($cek as $cek) {

$level = $cek['level']; //mengambil


data(level/hak akses) dari database

}
$this->session->set_userdata(array(

'isLogin' => TRUE, //set data


telah login

'uname' => $username, //set


session username

'lvl' => $level, //set session


hak akses

));

redirect('dashboard','refresh'); //redirect ke
halaman dashboard

}else{ //jika data tidak ada yng sama dengan database

echo "<script>alert('Gagal Login!')</script>";

redirect('login','refresh');

}
PHP
Copy

Kemudian, setelah itu. mari kita buat library auth. Buat file auth dengan
nama auth.php dan simpan di folder /application/libraries

<?php if ( ! defined('BASEPATH')) exit('No direct script access


allowed');
class Auth {

public function cek_auth(){

$this->ci =& get_instance();

$this->sesi = $this->ci->session->userdata('isLogin');

$this->hak = $this->ci->session->userdata('stat');

if($this->sesi != TRUE){

redirect('login','refresh');

exit();

public function hak_akses($kecuali=""){

if($this->hak==$kecuali){

echo "<script>alert('Anda tidak berhak mengakses


halaman ini!');</script>";

redirect('dashboard');

}elseif ($this->hak=="") {
echo "<script>alert('Anda belum
login!');</script>";

redirect('login');

}else{

/* End of file Someclass.php */


PHP
Copy

Seudah itu, mari kita buat view halaman Dashboard buat admin dan user nya..
Pertama kita buat dulu buat admin, setelah itu baru User..

Hai horeee kamu berhasil login. Ini halaman admin. Udah masuk mau
keluar? nih keluarin disini > [<a href=''>Keluar</a>]
Hai horeee kamu berhasil login. Ini halaman user. Udah masuk mau
keluar? nih keluarin disini > [<a href=''>Keluar</a>]

Kalo udah di buat, ayo kita buat controller nya B-)

<?php if ( ! defined('BASEPATH')) exit('No direct script access


allowed');

class Dashboard extends CI_Controller{

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

$this->load->model('m_login');

$this->auth->cek_auth(); //ngambil auth dari library

function index(){

$ambil_akun = $this->m_login->ambil_user($this->session-
>userdata('uname'));

$data = array(

'user' => $ambil_akun,

);

$stat = $this->session->userdata('lvl');

if($stat==1){//admin

$this->load->view('dashboard_admin',$data);

}else{ //user

$this->load->view('dashboard_user',$data);

}
function login(){

$session = $this->session->userdata('isLogin');

if($session == FALSE){

$this->load->view('login_form');

}else{

redirect('dashboard');

function logout(){

$this->session->sess_destroy();

redirect('login','refresh');

}
PHP
Copy

Oke selesai deh, mari kita coba satu per satu login nya :D

Nahh selesai dah , sekarang coba deh di jalanin LOCALHOSTnya :D


Nih Filenya buat yang pengen langsung jadi -___-"

Anda mungkin juga menyukai