CodeIgniter: Session dan Auntentifikasi Login

login formSelamat siang, pada kesempatan kali ini saya akan share tentang tutorial membuat form untuk registrasi dan form untuk login. Terlihat memang biasa saja, namun kita akan membuatnya menggunakan framework CodeIgniter. Dimana nanti kita akan mengenal lebih jauh fungsi-fungsi yang terdapat pada framework CodeIgniter.

Pada tutorial ini, kita hanya membahas dibagian controller saja. Untuk viewnya tidak akan saya bahas karena masalah design itu seninya berbeda-beda. Tahap pertama silakan kalian lakukan konfigurasi terlebih dahulu.

1# Masuk ke controller dan buatlah file dengan nama login.php buatlah  function :
  • Function index() : berfungsi untuk redirect ke tampilan utama.
  • Funtion form_login() : berfungsi untuk mengalihkan user ke form login saat user menekan tombol login.
  • Function registrasi() : berfungsi untuk menerima data dari form login kemudian melakukan validasi apakah data sudah sesuai dengan kriteria atau belum. Kemudian meneruskan ke model untuk di insert ke database.
  • Function login() : berfungsi untuk menerima dari form kemudian di validasi, setelah di validasi data di kirim ke model untuk di cocokkan dengan data yang ada di database.
  • Function logout(): meredirect user ke tampilan utama saat user tekan tombol logout dan menghapus semua session.
Untuk lebih jelasnya semua code yang saya buat seperti dibawah ini:

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

class Login extends CI_Controller {
 
 public function __construct()
 {
  parent::__construct();
  $this->load->model('mlogin');
  $this->load->library('form_validation');
 }
 //menampilkan main menu
 public function index()
 {
  $this->load->view('vlogin');
 }
 public function form_login(){
  $this->load->view('formlogin');
 }
 //proses input data baru atau registrasi user baru
 public function registrasi(){
  //pengechekan apakah yang di input user sudah sesuai dengan ketentuan menggunakan form_validation
  $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]');
  $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
  $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[8]');

  if($this->form_validation->run() == FALSE ){
   $this->load->view('vlogin');
  }
  else{
   //mengambil data dari form kemudian meneruskan ke database 
   $regis = array(
     'email'  => $this->input->post('email'),
     'username'  => $this->input->post('username'),
     'password'  => $this->input->post('password')
    );
   $result  = $this->mlogin->registrasi($regis);
   if($result == TRUE){
    $data['pesan'] = 'Registrasi Berhasil Gan!!';
    $this->load->view('vlogin', $data);
   }
   else{
    $data['pesan'] = 'Email sudah terdaftar!!';
    $this->load->view('vlogin', $data);
   }
  }
 }

 public function login(){
  $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
  $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[8]');

  if($this->form_validation->run() == FALSE ){
   $this->load->view('formlogin');
  }
  else{
   //mengirim data akun user untuk di cocokkan dengan database
   $akun = array(
     'email'  => $this->input->post('email'),
     'password'  => $this->input->post('password')
    );
   $result = $this->mlogin->login($akun);
   if($result == TRUE){
    $email = $this->input->post('email');
    //berfungsi untuk mengambil data user, misalkan ingin menampilkan nickname atau yg lain
    $result = $this->mlogin->informasi_user($email);
    if($result != FALSE){
     $session_data = array(
      'email' => $result[0]->email,
      'username' => $result[0]->username
      );
     //menambahkan data pada session user
     $this->session->set_userdata('logged_in', $session_data);
     $this->load->view('admin');
    }
   }else{
    $data['error'] = "Email dan Password Salah!";
    $this->load->view('formlogin', $data);
   }
  }
 }

 public function logout(){
  //menghapus data session
  $sess_array = array(
  'username' => ''
  );
  $this->session->unset_userdata('logged_in', $sess_array);
  $this->load->view('vlogin');
  }

}

/* End of file login.php */
/* Location: ./application/controllers/login.php */

Sudah saya sertakan note diatasnya, silakan kalian baca pelan-pelan.

2# Masuk ke Model dan buatlah file dengan nama mlogin.php buatlah function:

  • Function registrasi() : berfungsi untuk mengecheck email yang akan didaftarkan ke database, jika belum terdaftar maka data bisa dimasukkan ke database, jika sudah maka akan nanti akan muncul pesan bahwa email sudah terdaftar.
  • Function login() : berfungsi untuk mengechek email dan password yang dimasukkan oleh user sudah cocok dengan yang di database atau tidak.
  • Function informasi_user(): Berfungsi untuk mengambil data user yang tersimpan didatabase. Pada tutorial ini saya hanya mengambil username. Untuk yang lainnya silakkan kalian tambahkan sendiri, yang pastinya ini sangat berguna nantinya.

code model yang saya buat seperti dibawah ini, silakan pahami codenya:

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

class Mlogin extends CI_Model {

 public $variable;

 public function __construct()
 {
  parent::__construct();
  
 }
 public function registrasi($regis){
   //pengecheckan apakah email sudah pernah terdaftar atau belum
   $this->db->select('*');
   $this->db->from('login');
   $this->db->where('email', $regis['email']);
   $query = $this->db->get();
   if($query->num_rows() == 0){
    //jika email belum terdaftar maka akan di masukkan data ke database
    $this->db->insert('login', $regis);
    if ($this->db->affected_rows() > 0) {
    return true;
   }
   else{
    return false;
   }
  }
 }

 public function login($akun){
  //proses pencocokkan data user yang diinput dengan yang di database
   $this->db->select('*');
   $this->db->from('login');
   $this->db->where('email', $akun['email']);
   $this->db->where('password', $akun['password']);
   $query = $this->db->get();
   if($query->num_rows() == 1){
    return true;
   }
   else{
    return false;
   }
 }

 public function informasi_user($email){
   //proses pengambilan data user di database
   $this->db->select('*');
   $this->db->from('login');
   $this->db->where('email', $email);
   $query = $this->db->get();
   if($query->num_rows() == 1){
    return $query->result();
   }
   else{
    return false;
   }

 }
}

/* End of file mlogin.php */
/* Location: ./application/models/mlogin.php */

Bagi kalian yang mungkin masih belajar memakai framework mungkin sedikit kebingungan sama seperti saya pas membuatnya tetapi coba untuk pahami sedikit demi sedikit codenya lama-kelamaan setelah menemukan beberapa error akan semakin mengerti alurnya. Maka dari itu saya tidak sertakan semua filenya, melainkan hanya file yang ada di view, model dan controller. Saran saya kalian jangan begitu saja copas program ini. Sebaiknya tulis sendiri dan cocokkan ketika menemukan error.
Di bawah ini link download script dan database:

Download

Ala Bisa Karena Biasa

Artikel Terkait

10 komentar

thanka infonya.. jadi tau ttng gituan.. hehe

Thanks min,jadi nambah ilmu nih hehehe ^_^

wahh walaupun agak nggak ngerti.. tapi gak pap lah gan lumayan tambah ilmu

ane coba dulu gan skripnya

Makasih gan, dengan membaca artikel ini ane jadi bisa nambah-nambah ilmu :)

lumayan nih buat nambah - nambah ilmu, sekalian pengen praktek. hehehe

Nice info gan ,mudah-mudahan ane ngerti👍

Komentar ini telah dihapus oleh administrator blog.


EmoticonEmoticon