Membuat Form Login dalam CodeIgniter Versi 2

Contoh Kasus:

Saya ingin membuat Form Login Administrator seperti terlihat pada gambar dibawah ini:

Ketentuan setelah menekan  tombol login:

Jika salah satu teks tidak diisi maka form akan tetap disini.

Jika semua teks sudah diisi dan pemeriksaan pada tabel user sesuai maka tampilkan halaman sukses login yang hanya berisi tulisan ‘Welcome nama_user’, dimana nama_user ini adalah nilai dari variabel session CodeIgniter.

Ketentuan field dari tabel user:

  • username bertipe varchar(20)
  • password bertipe varchar(16) dan password ini harus dienkripsi menggunakan metode md5

Ketentuan Folder admin:

  • Buatlah folder bernama admin dalam folder application/controller, dalam folder admin inilah kamu membuat controllermu.

Diketahui:

File CodeIgniter saya berada dalam folder hrd, jadi untuk mengakses dari browsernya adalah http://localhost/hrd/index.php

Untuk membuatnya maka diperlukan beberapa tahap, yaitu:

  • Membuat tabel user
  • Membuat View bernama vlogin
  • Membuat Controller bernama Cuser
  • Membuat fungsi Controller tampil_login
  • Membuat fungsi Controller periksa_user
  • Membuat Model bernama Muser
  • Membuat View bernama Vsukses

Membuat tabel user

Kamu bisa gunakan tool phpmyadmin untuk membuat tabel user.

Setelah itu isi datanya sehingga seperti terlihat pada gambar dibawah ini:

Membuat View vlogin

Buatlah satu file view bernama vlogin.php dan masukkan kode berikut ini:

<html>
<head>
<title>Login Administrator</title>
</head>
<body> 

<?php

$this->load->helper(‘form’);
echo form_open(‘admin/cuser/periksa_user’);

?>

<table align=”center” border=”1″>
<caption>Login Administrator</caption>
<tr>
<td>Username</td><td>:</td><td><input type=”text” name=”username”></td>
</tr>
<tr>
<td>Password</td><td>:</td><td><input type=”password” name=”password”></td>
</tr>
<tr>
<td colspan=”3″ align=”center”><input type=”submit” value=”LOGIN” ></td>
</tr>
</table>

</form>

</body>
</html>

Membuat Controller Cuser

Sebelum membuat Controller Cuser maka aktifkan library database dan session dalam file autoload.php yaitu:

$autoload[‘libraries’]=array(‘database’,’session’);

Buatlah satu Controller bernama cuser beserta metode tampil_login dan periksa_user seperti kode dibawah ini:

<?php if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);

class Cuser extends CI_Controller {

public function tampil_login(){

$this->load->view(‘vlogin’);

}

public function periksa_user(){

$this->load->model(‘Muser’);

$data_user=$this->input->post();

if(empty($data_user[‘username’]) or empty($data_user[‘password’])){

redirect(‘admin/cuser/tampil_login’,’refresh’);

}

else

{

$hasil_periksa = $this->Muser->periksa_user($data_user);

if($hasil_periksa->num_rows() > 0 )

{

$this->session->set_userdata(‘nama_user’, $data_user[‘username’]);

$this->load->view(‘admin/sukses’);

}

else

{

redirect(‘admin/tampil_login’);

}

}

}

Keterangan:

  • $this->input->post(), kode ini digunakan untuk mengambil semua nama elemen form yang dikirim.
  • $hasil_query->num_rows(), pada kode ini metode num_rows() digunakan untuk menghasilkan  jumlah baris dari objek $hasil_query.

Hasil:

  • Kamu buka alamat http://localhost/hrd/index.php/admin/tampil_login maka akan tampil form login administrator.

Membuat Model Muser

Buatlah satu model bernama muser.php dengan kode seperti dibawah ini:

<?php

class Muser extends CI_Model{

function __construct(){

parent::__construct();

}

function periksa_user($data_user){

$password=substr(md5($data_user[‘password’]),0,16);
$this->db->where(‘username’, $data_user[‘username’]);
$this->db->where(‘password’, $password);
$hasil_query=$this->db->get(‘user’);
return $hasil_query;

}

}

Keterangan:

  • substr(md5($data_user[‘password’]),0,16), kode ini berarti mengambil string sebanyak 16 karakter dari string yang telah dienkripsi oleh md5, dimana md5 ini akan membuat karakter enkripsi sebanyak 32 karakter.

Membuat View vsukses

Buatlah satu file View bernama vsukses.php dengan kode seperti dibawah ini:

<html><head>

<title>Sukses Login</title>

</head>
<body>

<?php echo “Welcome, ” .$this->session->userdata(‘nama_user’);?>

</body>

</html>

You may also like...

12 Responses

  1. frizky zendy says:

    mas, mau nanya semua uda ngikutin tutorialnya tp kok muncul eror ini ya

    An Error Was Encountered
    In order to use the Session class you are required to set an encryption key in your config file.

    salahnya dimana lagi itu ?

  2. sama-sama belajar says:

    @Frizky Zendy : untuk menggunakan session di CI 2 pada file config.php cek kode program seperti dibawah ini :

    $config[‘encryption_key’] = ”;

    nah string yang kosong itu diisi dengan kunci enkripsinya.
    misal : $config[‘encryption_key’] = ‘test123’;

  3. Fahmi Basya Kartapura says:

    Iya benar, coba lihat tutorial saya di http://a2fahmi.com/?p=4394

  4. frizky zendy says:

    uda berhasil mas. thx. hehe
    o iya mau nanya lagi. aku masih bingung. misal di database ada 2 user karyawan dan admin. kan itu dibedain dari id yang mereka pny kan. ini modelnya :

    function Login($data_user) {
    $this->db->where(‘id_karyawan’, $data_user[‘username’]);
    $this->db->where(‘password’, $data_user[‘password’]);
    return $this->db->get(‘login’);
    }//end function

    nah cara kirim id_karyawan ke controller gmn ya mas ?? maksud aku untuk mengecek id itu admin atau karyawan. kalo pake php biasa ngerti, kalo pake CI masih pemula. heheh

  5. aiep says:

    mantap!
    Salam Kenal juga Terima Kasih Om Fahmi Basya Kartapura
    saya ‘sangat’ awam di dunia software developing
    tapi, mudah2an dengan tutorial2 yang ada di site ini
    bisa membantu saya.
    boleh minta YM 😀

  6. lucky says:

    mas makasih tutorialnya cuma ada yang mo saya tanyain gimana yach klo bikin yang multi level user

  7. isoke says:

    Terima Kasih Tutorialnya ya.. bermanfaat banget .

  8. zahra says:

    Waah bermanfaat sekali tutorialnya, buat saya yg newbe ini.
    Terimakasih banyak gan.

    Ehm saya mencoba menggabungkan tutorial login ini dengan tutorial “membuat template di codeigniter Versi 2”. Saya mengganti pada controller cuser jika num_rows>0 nge link ke tampilan.php, tetapi muncul error:
    “A PHP Error was encountered

    Severity: Notice

    Message: Undefined variable: isi ”

    saya harus mendefinisikan variabel isi ini dimana yah?

    Thx

  9. zahra says:

    sudah bisa mas, variabel isi saya deklarasikan di controler cuser.

  10. Fahmi Basya Kartapura says:

    Coba saya lihat kode dalam Controller tampil_login … ?

  11. andi says:

    load->view('vlogin');
    }

    public function periksa_user(){
    $this->load->model('Muser');
    $data_user=$this->input->post();
    if(empty($data_user['username']) or empty($data_user['password'])){
    redirect('admin/cuser/tampil_login','refresh');
    }
    else
    {
    $hasil_periksa=$this->Muser->periksa_user($data_user);
    if($hasil_periksa->num_rows()> 0)
    {
    $this->session->set_userdata('nama_user',$data_user['username']);
    $this->load->view('admin/sukses');
    }
    else
    {
    redirect('admin/tampil_login');
    }
    }
    }
    }
    saya ikutin dari yang bikin template dari freecsstemplate masbro

  12. Fahmi Basya Kartapura says:

    fungsi tampil_login mana ?

Leave a Reply

Your email address will not be published. Required fields are marked *