Codeigniter merupakan open source aplikasi framework PHP yang berfungsi untuk memudahkan para programmer PHP dalam membuat program nya .

dan saat anda membuat suatu program web , tentu fungsi login / logout sering di pakai , bahkan sangat wajib dimiliki terutama untuk web yang memang memerlukan autentikasi user .

Disini saya akan membahas cara termudah bagaimana anda memasang fungsi login / logout pada framework CodeIgniter. 

Ikuti langkah langkah berikut 


Persiapan

  • Download Codeigniter terlebih dahulu disini saya akan memakai versi 2.1.4.
  • Pastikan semua fungsi web server apache/PHP/MySql berjalan baik.

Menginstall Codeigniter

untuk menginstall codeigniter anda cukup mengekstrak file zip file Codeigniter yang tadi anda download ke direktori htdocs (xampp) atau pada folder www (wamp).

Membuat database

buat terlebih dahulu database di phpmyadmin disini saya mencontohkan membuat database dengan menggunakan nama db_user lalu isikan table dengan struktur sebagai berikut.

CREATE TABLE `users` (
 `id` tinyint(4) NOT NULL AUTO_INCREMENT,
 `username` varchar(10) NOT NULL,
 `password` varchar(100) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

lalu tambahkan data pada tabel users dengan struktur data sebagai berikut.

insert into users (username, password) values ('admin', MD5('rahasia'));

Mengkonfigurasi database

Akses database

Update file application/config/database.php di folder codeigniter anda , lalu edit baris ini.

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'db_user';

Default Controller 

Kita harus memberi tahu Codeigniter untuk mengarahkan kita ke halaman login , update file application/config/routes.php di folder codeigniter anda dengan nama controller anda . disini saya akan membuat controller dengan nama login.
$route['default_controller'] = "login";

Default Libraries 

Dalam file application/config/autoload.php anda dapat mengkonfigurasi library default yang anda akan pakai di semua controller anda , untuk saat ini , saya akan menggunakan database dan session library , yang digunakan untuk meng-handle session user dan juga URL Helper untuk pemrosesan link.

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

Encryption Key

Saat anda menggunakan library session, anda harus set encryption key pada file application/config/config.php.
$config['encryption_key'] = 'REALLY_LONG_NUMBER';

Script

ini adalah kumpulan script Controller, View dan Model yang akan kita gunakan untuk membuat login berfungsi.

User Model (application/models/user.php)

<?php
Class User extends CI_Model
{
 function login($username, $password)
 {
   $this -> db -> select('id, username, password');
   $this -> db -> from('users');
   $this -> db -> where('username', $username);
   $this -> db -> where('password', MD5($password));
   $this -> db -> limit(1);

   $query = $this -> db -> get();

   if($query -> num_rows() == 1)
   {
     return $query->result();
   }
   else
   {
     return false;
   }
 }
}
?>



Login Controller (application/controllers/login.php)

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

class Login extends CI_Controller {

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

 function index()
 {
   if($this->session->userdata('logged_in'))
   {
     redirect('home', 'refresh');
   }
   else 
   {
      $this->load->helper(array('form'));
      $this->load->view('login_view');
   }
 }

}

?>


Login View (application/views/login_view.php)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <title>Simple Login menggunakan CodeIgniter</title>
 </head>
 <body>
   <h1>Simple Login menggunakan CodeIgniter</h1>
   <?php echo validation_errors(); ?>
   <?php echo form_open('verifylogin'); ?>
     <label for="username">Username:</label>
     <input type="text" size="20" id="username" name="username"/>
     <br/>
     <label for="password">Password:</label>
     <input type="password" size="20" id="passowrd" name="password"/>
     <br/>
     <input type="submit" value="Login"/>
   </form>
 </body>
</html>


VerifyLogin Controller (application/controllers/verifylogin.php)

Controller ini digunakan untuk membuat validasi terhadap database
 
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class VerifyLogin extends CI_Controller {

 function __construct()
 {
   parent::__construct();
   $this->load->model('user','',TRUE);
 }

 function index()
 {
   //Aksi untuk melakukan validasi
   $this->load->library('form_validation');

   $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
   $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');

   if($this->form_validation->run() == FALSE)
   {
     //Jika validasi gagal user akan diarahkan kembali ke halaman login
     $this->load->view('login_view');
   }
   else
   {
     //Jika berhasil user akan di arahkan ke private area 
     redirect('home', 'refresh');
   }

 }

 function check_database($password)
 {
   //validasi field terhadap database 
   $username = $this->input->post('username');

   //query ke database
   $result = $this->user->login($username, $password);

   if($result)
   {
     $sess_array = array();
     foreach($result as $row)
     {
       $sess_array = array(
         'id' => $row->id,
         'username' => $row->username
       );
       $this->session->set_userdata('logged_in', $sess_array);
     }
     return TRUE;
   }
   else
   {
     $this->form_validation->set_message('check_database', 'Invalid username or password');
     return false;
   }
 }
}
?>



Home Controller (application/controllers/home.php)

Ini adalah halaman private, hanya user yang telah login yang dapat masuk
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start(); //Memanggil fungsi session Codeigniter
class Home extends CI_Controller {

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

 function index()
 {
   if($this->session->userdata('logged_in'))
   {
     $session_data = $this->session->userdata('logged_in');
     $data['username'] = $session_data['username'];
     $this->load->view('home_view', $data);
   }
   else
   {
     //Jika tidak ada session di kembalikan ke halaman login
     redirect('login', 'refresh');
   }
 }

 function logout()
 {
   $this->session->unset_userdata('logged_in');
   session_destroy();
   redirect('home', 'refresh');
 }

}

?>



Home Page View (application/views/home_view.php)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <title>Simple Login menggunakan CodeIgniter - Private Area</title>
 </head>
 <body>
   <h1>Home</h1>
   <h2>Selamat datang<?php echo $username; ?>!</h2>
   <a href="home/logout">Logout</a>
 </body>
</html>



Tutorial ini sebenarnya mudah untuk di pelajari jika anda benar benar mengikuti langkah langkah yang saya tulis . jika anda kesulitan anda bisa mendownload file contoh yang sudah saya buat disini.
Cara download klik tab file lalu klik Download

Good Luck! , semoga berhasil
Tutorial By Suave Digital Team




Tag: Creative Web Development , design graphic company , php development indonesia , suave digital , web development , web development bandung , web development indonesia , Php developer indonesia , php developer bandung indonesia , php developer cimahi indonesia , web development indonesia , web design indonesia , web design cimahi , web development cimahi , web development and graphic design company ,