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
lalu tambahkan data pada tabel users dengan struktur data sebagai berikut.
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 ,
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 ,