Teknik membuat halaman login ini digunakan untuk membuat halaman Administrator yang diharapkan terlindungi dari akses oleh pengguna umum, atau pengguna yang tidak mengetahui username dan password, atau istilahnya pengguna yang tidak terautentikasi :)
Buat dahulu tabel (misal di database dbci seperti sebelumnya) berisi data login, di MySQL, misalnya seperti ini :
CREATE TABLE IF NOT EXISTS `login` ( `username` varchar(50) NOT NULL, `password` varchar(50) DEFAULT NULL, `akses` varchar(50) DEFAULT NULL, PRIMARY KEY (`username`) ); INSERT INTO `login` (`username`, `password`, `akses`) VALUES ('admin', MD5('123'), '1'), ('bos', MD5('321'), '2');
Aplikasi ini terdiri dari 5 buah file, pertama kita buat webci/application/views/vadmin.php seperti ini :
<?php echo "Selamat Datang "; if($akses == '1') { echo "admin"; } elseif($akses == '2') { echo "user"; } echo "<br/>"; echo anchor('login/logout','Logout'); ?>
Kemudian kita buat webci/application/views/vlogin.php
<?php echo form_open('login/ceklogin'); if(isset($pesan)) { echo $pesan; } ?> <table> <tr> <td>Username</td> <td><?php echo form_input('username'); ?></td> </tr> <tr> <td>Password</td> <td><?php echo form_password('password'); ?></td> </tr> <tr> <td> </td> <td><?php echo form_submit('submit','Login'); ?></td> </tr> </table> <?php echo form_close(); ?>
Setelah itu buatlah file model, yaitu webci/application/models/mlogin.php :
<?php class Mlogin extends CI_Model{ function cekdb(){ $username = $this->input->post('username'); $password = md5($this->input->post('password')); $this->db->where('username',$username); $this->db->where('password',$password); $query = $this->db->get('login'); return $query->result(); } } ?>
Kemudian kita buat Controller admin.php di webci/application/controllers/admin.php :
<?php class Admin extends CI_Controller{ function index(){ if($this->session->userdata('login') != 'TRUE') { $data['pesan'] = 'Belum Login'; $this->load->view('vlogin',$data); } else { $data['akses'] = $this->session->userdata('akses'); $this->load->view('vadmin',$data); } } } ?>
Langkah terakhir tambahkan kode program ini pada Controller login.php yang ada di webci/application/controllers/login.php :
<?php class Login extends CI_Controller{ function index(){ $this->load->view('vlogin'); } function ceklogin(){ $this->load->model('mlogin'); $data['hasilquery'] = $this->mlogin->cekdb(); $this->load->library('session'); //print_r($data['hasilquery']); exit; if($data['hasilquery'] != null){ $username = $this->input->post('username'); //atau bisa dari database $username = $data['hasilquery'][0]->username; $akses = $data['hasilquery'][0]->akses; $sessiondata = array('userlogin'=>$username,'login'=>'TRUE','akses'=>$akses); $this->session->set_userdata($sessiondata); //untuk mengeset satu saja variable $this->session->set_userdata('userlogin', $username); $data['akses']=$this->session->userdata('akses'); //echo $this->session->userdata('userlogin'); //print_r($data['hasilquery']); $this->load->view('vadmin',$data); } else { $data['pesan'] = 'Login Gagal'; $this->load->view('vlogin',$data); } } function logout(){ //untuk mengeset variable satu per satu $this->session->set_userdata('userlogin', ''); $this->session->set_userdata('login', 'false'); $sessiondata = array('userlogin'=>'','login'=>'FALSE'); $this->session->unset_userdata($sessiondata); $this->load->view('vlogin'); } } ?>
Hasilnya, panggil halaman Login dengan url http://127.0.0.1/webci/login/ :
Setelah mengetikkan username dan password dengan benar bisa masuk halaman admin :
Dan bisa melakukan logout,
Kemudian jika langsung mengakses halaman login padahal belum login hasilnya akan dikembalikan ke halaman login :
Project selengkapnya menyusul :)
Semoga berguna.
Terima kasih banyak, saya banyak belajar dari blog ini
BalasHapusijin utk kopas2 ya
izin sedot gan...
BalasHapus