Jumat, 31 Mei 2013

Membuat Halaman Login pada CodeIgniter

Membuat Halaman Login dengan CodeIgniterMembuat Halaman Login pada CodeIgniter PHP ini digunakan untuk membuat Halaman Admin adalah sambungan dari artikel CodeIgniter yang lain yaitu Menampilkan Data(View), Mengedit Data (Update), dan Menghapus (Delete).

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>&nbsp;</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/ :

Membuat Halaman Login dengan CodeIgniter

Setelah mengetikkan username dan password dengan benar bisa masuk halaman admin :

Membuat Halaman Login dengan CodeIgniter Admin Page


Dan bisa melakukan logout,

Membuat Halaman Login dengan CodeIgniter Logout

Kemudian jika langsung mengakses halaman login padahal belum login hasilnya akan dikembalikan ke halaman login :

Membuat Halaman Login dengan CodeIgniter Belum Login

Project selengkapnya menyusul :)

Semoga berguna.

2 komentar: