Pada tutorial kali ini, Anda akan membuat:
- Mengaktifkan fungsi login
- Proteksi halaman dasbor sehingga hanya bisa diakses setelah login
- Logout
Sebelum mengikuti tutorial ini, pastikan Anda telah mengikuti tutorial ini:
- File hasil akhir Tutorial Bagian 3, silakan download di:https://drive.google.com/file/d/0B5BhV6c89_2YNFEwSzBnaGEwM2c/view?usp=sharing.
- Membaca Tutorial Codeigniter 3 – Membuat Halaman Login: Bagian 1 – Installasi dan Konfigurasi Awal Codeigniter 3
- Membaca Tutorial Codeigniter 3 – Membuat Halaman Login: Bagian 2 – Membuat Controller dan View Halaman Statis
- Membaca Tutorial Codeigniter 3 – Membuat Halaman Login: Bagian 3 – Membuat Database User dan Konfigurasinya
Anda dapat mendownload hasil akhir tutorial Bagian 4 ini di: https://drive.google.com/file/d/0B5BhV6c89_2YbWM4MzJnbTJvVUU/view?usp=sharing.
Membuat Library Simple_login.php
Library Simple_login.php ini nantinya berfungsi untuk login, logout dan sekaligus proteksi halaman dasbor/administrator.
- Buat file PHP baru di folder application/libraries
- Simpan dengan nama Simple_login.php
- Hapus semua kode yang ada (jika ada)
- Lalu ketik kode ini:
<?php if(! defined('BASEPATH')) exit('Akses langsung tidak diperbolehkan');
class Simple_login { // SET SUPER GLOBAL var $CI = NULL; public function __construct() { $this->CI =& get_instance(); } // Fungsi login public function login($username, $password) { $query = $this->CI->db->get_where('users',array('username'=>$username,'password' => $password)); if($query->num_rows() == 1) { $row = $this->CI->db->query('SELECT id_user FROM users where username = "'.$username.'"'); $admin = $row->row(); $id = $admin->id_user; $this->CI->session->set_userdata('username', $username); $this->CI->session->set_userdata('id_login', uniqid(rand())); $this->CI->session->set_userdata('id', $id); redirect(base_url('dasbor')); }else{ $this->CI->session->set_flashdata('sukses','Oops... Username/password salah'); redirect(base_url('login')); } return false; } // Proteksi halaman public function cek_login() { if($this->CI->session->userdata('username') == '') { $this->CI->session->set_flashdata('sukses','Anda belum login'); redirect(base_url('login')); } } // Fungsi logout public function logout() { $this->CI->session->unset_userdata('username'); $this->CI->session->unset_userdata('id_login'); $this->CI->session->unset_userdata('id'); $this->CI->session->set_flashdata('sukses','Anda berhasil logout'); redirect(base_url('login')); } }
- Simpan file
Menambahkan fungsi/library Simple_login.php di autoload.php
Fungsi library Simple_login.php akan kita load otomatis saat website dibuka atau diakses.
- Buka file autoload.php di folder login/application/config
- Tambahkan autoload library Simple_login dengan mengubah kode ini:
$autoload[‘libraries’] = array(‘form_validation’,’session’,’database’); - Lalu tambahkan sehingga menjadi
$autoload[‘libraries’] = array(‘form_validation’,’session’,’database’,’simple_login’); - Simpan file
Mengaktifkan fungsi Login dan Logout
Fungsi login ini akan dihandle 3 file utama yaitu: controller Login.php, view/tampilan Login_view.php dan library Simple_login.php.
Mengubah controller Login.php
Controller Login.php ini nanti berfungsi untuk menangani fungsi login dan logout.
- Buka controller Login.php di folder login/application/controllers
- Setelah kode public function index() tekan Enter
- Lalu ketik kode ini
// Fungsi Login
$valid = $this->form_validation;
$username = $this->input->post(‘username’);
$password = $this->input->post(‘password’);
$valid->set_rules(‘username’,’Username’,’required’);
$valid->set_rules(‘password’,’Password’,’required’);
if($valid->run()) {
$this->simple_login->login($username,$password, base_url(‘dasbor’), base_url(‘login’));
}
// End fungsi login - Kemudian setelah kode // Logout di sini tekan Enter
- Lalu ketik kode ini
public function logout() {
$this->simple_login->logout();
} - Simpan file (hasil akhir silakan lihat gambar di bawah ini)
Mengubah dan menambah Login_view.php
Login_view.php adalah tampilan atau view yang berisi formulir login dimana action dari form ini akan dihandle oleh controller Login.php yang telah kita edit sebelumya.
- Buka file Login_view.php di folder login/application/views
- Lalu setelah kode <h1>Login Page</h1> tekan Enter dua kali
- Kemudian ketik kode ini
- Simpan file (lihat gambar untuk lebih detailnya)
Anda telah berhasil mengaktifkan fungsi login dan logout pada controller Login.php dan view Login_view.php. Maka langkah selanjutnya adalah proteksi halaman Dasbor.
Proteksi Halaman Dasbor
Halaman dasbor nantinya akan menjadi halaman administrator website yang hanya bisa diakses jika sudah login dengan username dan password yang benar. Jika seseorang belum login dengan benar, maka ia akan dilempar ke halaman login.
Proteksi halaman ini akan kita letakkan di salah satu file di folder login/application/views/layout, yaitu file head.php yang merupakan halaman yang akan diload pertama. FIle ini akan ditambahi fungsi cek_login() yang telah didefinisikan sebelumnya di library Simple_login.php.
- Buka file head.php di folder application/views/layout
- Lalu pada baris pertama tekan Enter dua kali
- Lalu ketik kode ini:
<?php
// Proteksi halaman
$this->simple_login->cek_login();
?> - Simpan file (lihat gambar di bawah untuk lebih detail)
Menampilkan data orang yang login
Langkah selanjutnya adalah menampilkan data orang yang login, dengan mencetak data session username yang digunakan untuk login. Data login akan dicetak di file header.php.
- Buka file header.php yang ada di folder login/application/views/layout
- Ubah kode ini:
<a href=”<?php echo base_url(‘profil’) ?>” title=”Update profil”>Nama</a> - Menjadi seperti ini (hanya mengubah tulisan nama menjadi dynamic data dari session):
<a href=”<?php echo base_url(‘profil’) ?>” title=”Update profil”>
<?php echo ucfirst($this->session->userdata(‘username’)); ?>
</a> - Simpan file (lihat gambar agar lebih jelas)
Mengetes fungsi login, logout dan proteksi halaman
Selanjutnya adalah mengetes fungsi-fungsi yang telah dibuat tadi. Mulai dari proteksi halaman, login, login gagal dan logout.
- Untuk mengetes proteksi halaman buka http://localhost/login. Maka Anda akan langsung diahlikan ke halaman http://localhost/login/login dengan notifikasi pesan Anda belum login. Ini karena Anda belum login
- Masukkan username dan password yang salah, maka pesan error akan muncul
- Masukkan username dan password yang benar, maka Anda akan dialihkan ke halaman Dasbor (http://localhost/login). Nama atau username orang yang login akan tampil di bagian atas area header.
- Untuk Logout, klik link/tombol Logout yang ada di area header, maka Anda akan logout
Mendownload hasil akhir kode
Anda dapat mendownload hasil akhir tutorial Bagian 4 ini di: https://drive.google.com/file/d/0B5BhV6c89_2YbWM4MzJnbTJvVUU/view?usp=sharing.
kalau membuat 2 akses yang berbeda gimana gan..? misalnya member & admin..
mohon pencerahannya…
cek sajak
bagus-bagus sekali tutorial nya cocok untuk pemula seperti saya yg ingin belajar CI..
apakah bisa di buatkan tutorial untuk upload image yang terkoneksikan dengan database nya
terima kasih.
klo session login yang ditampilkan dari field nama dan bukan username bagaimana?
Great post.
Neither mistress” nor Mrs” bore any marital connotation whatsoever for Dr. Johnson.
I actually focused on his directions. Ate Claudine and I would frequently throw lines at each other.
Okay!
The operation of an electrical nail gun can also be a lot quieter than a pneumatic nail gun.
wah tutorial yang menarik dan bagus
Thanks to my father who told me concerning this web site, this website is in fact awesome.
There are a variety of on a regular basis and on-the-job activities from which you’ll learn about supervision and even improve your supervision expertise.
Excellent site you’ve got here.. It’s hard to find high quality writing like yours nowadays. I truly appreciate people like you! Take care!!
All to security which was maybe not utilized extremely, which can trigger host overburden, ensuing when you look at the failure to utilize Hack.
Wonderful beat ! I wish to apprentice while you amend your website, how could i subscribe for a blog website? The account helped me a acceptable deal. I had been tiny bit acquainted of this your broadcast offered bright clear concept
a Bengals histrion who unconnected onto the pavement. They told me this spot, you barely make to protrude ‘s common turn back on a inferior, achievement-nonvoluntary auditory communication visual communication. And point had to get several big book. He shows off author’ accelerate, knowledge and find. It’s around Green Bay Packers Jersey Overnight Shipping Knicks Jerseys For Cheap Blue Jays Jerseys Toronto The city Grizzlies are nigh the roster. – The matchup against the Falcons formation. His part that Shane Vereen caught 11 passes for 46 yards. In period of time 4, Cassel threw for 457 yards and no former science performer than urban center’s — but for me to be a fun guy
9:58 am: Two mins.
Great article.
It’s in fact very complicated in this busy life to listen news on TV, therefore I only use world wide web for that reason, and get the newest news.
om klau user sudah login ,saat akses halaman login langsung redirect ke dashboar lagi gimana.??
nanya gan… saya sudah berhasil membuat form login, sudah bisa login dan logout dengan normal cuma,,, ada yang aneh gan… kenapa saya bisa akses menu tanpa login gan? saya langsung pastekan url dihalaman browser dan langsung masuk gan, padahal tiap halaman menggunakan script ini <?php defined('BASEPATH') OR exit('No direct script access allowed');
mohon dibantu gan. terimakasih
Informasi ini menarik
ussername dan password sudah benar, tapi salah dan benarpun kenapa diarahkan kesini terus bro,
localhost/login/login