Home » Codeigniter » Contoh Penggunaan Session di Codeigniter

Contoh Penggunaan Session di Codeigniter

Published by Ade Kurniawan on

Session digunakan untuk menyimpan data user dan melacak aktivitas yang dilakukannya pada aplikasi yang dibuat. Pada sebuah apliksi atau halaman web kita sering melihat bahwa saat saat login dengan username dan password yang telah dimiliki muncul halaman utama web yang menampilkan username. sebagai contoh login dengan username ade dan password ade123 maka saat login berhasil maka di menu navigasi akan muncul tulisan “ade” atau “hi ade”.

session userdata codeigniter untuk menampilkan data sesi user jika login dengan usenama ade maka akan muncul selamat datang ade nantinya.

selanjutnya juga ada dengan session flashdata codeigniter untuk menampilkan flash misalnya login gagal login berhasil

session codeignter
Session Codeigniter

Pembuatan session userdata

Untuk membuat session pada codeigniter menggunakan perintah berikut:

$this->session->set_userdata(‘item’);

Session di buat saat user login ke sebuah sistem yang dibuat dan saat login dibutuhkan username dan password sehingga dalam pembuatan session kita melakukan proses login dan selanjutnya menyimpan data login tesebut.

Perintah login dapat dilakukan dengan membuat model function login dan memanggilnya pada controller sebagai berikut:

 $this->user_model->login($username, $password);

Pengambilan data login ke dalam variabel user_login sebagai berikut :

 $user_login = $this->user_model->login($username, $password);

sciript di atas sama halnya dengan: 
User login = proses input data

Sehingga untuk membuat sesi dibuat dengan if user login sebagai berikut: 

if($user_login){
                    // Create session
                    $data_sesi = array(
                        ‘user_login’ => $user_login,
                        ‘username’ => $username,
                        ‘logged_in’ => true,
                    );

                    $this->session->set_userdata($data_sesi); // penggunaan session set_userdata

}

Script di atas kita membuat session yang berisikan data user_id, username dan status loged_in

Contoh Session  Dengan Aplikasi Codeigniter

Untuk membuat contoh session menggunakan codeigniter ini kita membutuhkan file file sebagai berikut:
1. Tabe user pada database
2. Controller (User.php)
4. Model (User_model.php)
5. View Login ( login.php)
6. Halaman utama (Halaman_utama.php dan berita.php) // halaman dituju jika login success dan menampilkan session user

1. Membuat Tabel user di database.

Silahkan buat tabel user dengan struktur tabel sebagai beriut :

CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `nama` varchar(255) NOT NULL,
 `email` varchar(255) NOT NULL,
 `username` varchar(255) NOT NULL,
 `password` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1

Setelah memiliki tabel user silahkan isikan dengan data sebagai berikut (contoh ini data diisikan pada phpmyadmin xampp):

id : (kosong)  // diisi kosong saja karena auto increment
nama : belajarci
email : belajarci25@gmail.com
usernama : belajarci
password : belajarci   // set kolom function MD5 saat mengisi password

2. Membaut Controller Login
Dengan menyelesaikan tabel di atas kita sudah memiliki tabel pada database selanjutnya pada contoh session codeigniter ini kita lanjutkan dengan membuat controller dengan script sebagai berikut:
 
User.php

    public function login(){
        $data['title'] = 'Login';

        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');

        if($this->form_validation->run() === FALSE){
            $this->load->view('templates/header');                   
            $this->load->view('login', $data);
               
        } else {
           
            // Get username
            $username = $this->input->post('username');
            // Get and encrypt the password
            $password = md5($this->input->post('password'));

            // Login user
            $user_login = $this->user_model->login($username, $password);

            if($user_login){
                // Create session
                $data_sesi = array(
                    'user_login' => $user_login,
                    'username' => $username,
                    'logged_in' => true,
                );

                $this->session->set_userdata($data_sesi);

                // Set message
                $this->session->set_flashdata('user_loggedin','Selamat Anda Berhasil Login');

                redirect('halaman_utama');
            } else {
                // Set message
                $this->session->set_flashdata('login_failed', '<div class="alert  

       alert-danger text-center">username dan password salah!</div>');

                redirect('user/login');
            }       
        }
    }

3. Model 
 Model digunakan untuk melakukan validasi username dan password saat proses login atau tombol login di tekan nantinya. disini digunakan model sebagai berikut: User_login.php

<?php
    class User_model extends CI_Model{ 

// Login User

       public function login($username, $password){
           // where untuk validasi kecocokan username & password
        $this->db->where('username', $username);
        $this->db->where('password', $password);
        $result = $this->db->get('user');
        //if else jika rows ada = 1 return result jika tidak ada false 
        if($result->num_rows() == 1){
            return $result->row(0)->id;
            } else {
               return false;
            }

        }

Pada script di atas kita melakukan validasi kecocokan antara username password yang diinputkan dengan password yang terdapat pada database. Jika terdapat kecocokan atau == 1 seperti script di atas maka return result jika tidak maka statusnya false.

 4. View Login
 view login ini adalah halaman yang di load oleh model untuk menampilkan tampilan login, berikut script yang digunakan pada tampilan halaman login

login.php
 

 <?php echo form_open('user/login'); ?><br />
    <div class=" gt="" justify-content-center="" row="">     <div class="col-lg-4">
            <h1 class="text-center"><?php echo $title; ?></h1>
            <div class="form-group">
                <input type="text" name="username" class="form-control" placeholder="Enter Username" required autofocus>
            </div>
            <div class="form-group">
                <input type="password" name="password" class="form-control" placeholder="Enter Password" required autofocus>
            </div>
            <button type="submit" class="btn btn-primary btn-block">Login</button>
            <br>
                  <?php echo $this->session->flashdata('login_failed'); ?>
          
        </div>
        <h2></h2> 
    </div>
<?php echo form_close(); ?> 

5. Halaman Utama

berita.php

    <div class="container">
     <?php
     //menampilkan flashdata login success

       if ($this->session->flashdata('user_loggedin')) {
        echo "<br/>"."<div class='alert-success'>".$this->session->flashdata('user_loggedin')."</div>";
      }
     ?> 
     <div class="card">
       <?php echo $this->session->userdata('username');  ?
       </div>

Halaman utama ini merupakan halaman yang dibuat sebelumnya untuk mengakses halaman utama ini tentu kita juga membutuhkan cotroller sehingga untuk melengkapnya kita buatkan controller halaman utama ini seperti yang telah kita bahas pada postingan membuat controller untuk pertama kalinya.

Controller Halaman Utama

Halaman_utama.php

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

class Halaman_utama extends CI_Controller{ 
    function __construct(){
    parent:: __construct();
    $this->load->library('session');
    $this->load->helper('url','form');
    }

    public function index(){
        $this->load->view('templates/header');
        $this->load->view('templates/menu');
        $this->load->view('berita');  //load berita  
        $this->load->view('templates/script');
        $this->load->view('templates/footer');
    }


Pada controller halaman utama di atas kita load view berita.php yang akan menampilkan halaman view berita.

Demikian ulasan tentang penggunaan session pada codeigniter yang telah kita buat menggunakan session userdata dan session flashdata, session userdata berfungsi untuk menyelesaikan proses yang berkaitan dengan penangkapan nilai user sedangkan session flashdata digunakan untuk menampilkan notifikasi saat suatu proses berhasil dilakukan.

Categories: Codeigniter

0 Comments

Leave a Reply

Avatar placeholder

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