Hey Geeks…
Beberapa waktu lalu aku poting membuat login authentikasi user yang merupakan lanjutan dari tutorial membuat website sekolah dengan codeigniter. Waktu itu masih pake CI 1.7.2, ehh… selang beberapa minggu udh release CI 2.0.2.
Download Full Source Code | Demo Online
Jadi ya… sebelum aku lanjut koding, mending aku upgrade sekalian ke CI versi 2.0.2, biar lebih fresh…hehehe
Oke.. Geeks.. yng lgi mulai belajar CI segera aja download source codeny di GitHub.com.
Sebenarnya perubahanya cuma dikit kok.. cuma di model n controller aja.
klo versi 2.0.2 ketika membuat model ato contrloller itu pas extends ‘CI_Model’ ato ‘CI_Controller’. Ini source code model n controllernya:
Users_model
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
class Users_model extends CI_Model {
var $tabel_name = 'users';
function __construct() {
parent::__construct();
}
function cek_user_login($username, $password) {
$this->db->select('*');
$this->db->where('username', $username);
$this->db->where('password', md5($password));
$query = $this->db->get($this->tabel_name, 1);
if ($query->num_rows() == 1) {
return $query->row_array();
}
}
}
?>
sedang untuk controller Users adalah:
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
class Users extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('Users_model');
}
function login() {
$this->form_validation->set_rules('username', 'username', 'required|xss_clean');
$this->form_validation->set_rules('password', 'password', 'required|xss_clean');
$this->form_validation->set_error_delimiters('', '<br/>');
if ($this->form_validation->run() == TRUE) {
$username = $this->input->post('username');
$password = $this->input->post('password');
$login_data = $this->Users_model->cek_user_login($username, $password);
if($login_data){
$session_data = array(
'user_id' => $login_data['id'],
'username' => $login_data['username'],
'type' => $login_data['type'],
'is_login' => TRUE
);
$this->session->set_userdata($session_data);
redirect('users/dashboard');
}else{
$this->session->set_flashdata('message','Login Gagal, Kombinasi username dan password salah.');
redirect('users/login');
}
}
$this->load->view('users/login');
}
function dashboard() {
$this->check_logged_in();
$this->load->view('users/dashboard');
}
function logout() {
$data = array
(
'user_id' => 0,
'username' => 0,
'type' => 0,
'is_login' => FALSE
);
$this->session->sess_destroy();
$this->session->unset_userdata($data);
redirect('users/login');
}
public function check_logged_in() {
if ($this->session->userdata('is_login') != TRUE) {
redirect('users/login', 'refresh');
exit();
}
}
public function is_logged_in() {
if ($this->session->userdata('logged_in') == TRUE) {
return TRUE;
} else {
return FALSE;
}
}
}
?>
Download Full Source Code | Demo Online
Ok Geeks... sampe jumpa di postingan2 berikutnya...#sekian
saya tunggu update nya sob. saya sangat tertarik belajar codeigniter. Dan kebetulan tutor sobat sangat membantu..
Oke mas bro… insyaalloh segera update..:-)
Mas bro.. aku ngertine dadine thok.. nek code-code ngene iki mumet aku..
Nek ngerti dadi.. mbayare luwih akeh ms..:))
Mas…piye iku sing “sekolahku” rak metu…
gak metu kepiye?? aku coba normal kok
Fatal error: Class ‘Controllers’ not found in C:\xampp\htdocs\oilclinic\application\controllers\users.php on line 8
tulisane kui mas..
pake ci yang 202
Oh,,, di CI 2.0+, extends Controller menjadi extends CI_Controller
oke oke..thanks..mas..
Punyaku malah muncul pesan error ini mas, gimana solusinya ya ?
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI_Form_validation::$set
Filename: controllers/users.php
Line Number: 13
Itu karena library form_validation belum di panggil mas. Coba buka autoload.php di folder config, trus pada bagian $config['libraries'] ditambahkan = array(‘form_validation’). Trims
Tutorial yang bagus mas saya juga baru belajar CI 2.1 . kenapa bagian tiap pages admin/guru tidak di protect. link ini masih bisa di buka tanpa login. http://sekolahku.gie-art.com/index.php/admin/pages/index. mohan petunjuk untuk mengambil session di tiap pages yang berbeda. trims
Terima kasih mas telah berkunjung ke blog saya. Baik nanti di tutorial berikutnya akan dibuat library utk pengecekan akses/ protect utk page yng harus login. Utk mengambil session caranya $this->session->userdata(‘key’).
Terima kasih