Cara menggunakan php session lifecycle

Seperti yang telah kita ketahui bersama, session timeout menjadi sangat penting pada website untuk mengetahui aktivitas user hingga keamanan. Pada artikel ini, kami akan berbagi cara menambah session timeout di website berbasis Laravel.

Daftar Isi

Laravel adalah framework yang dibuat khusus untuk mengembangkan website dengan konsep Model View Controller(MVP) dan juga memiliki perbedaan struktur pemrograman PHP pada umumnya.

Session pada Laravel pada umumnya memiliki fungsi yang sama dengan pemrograman PHP lainnya, yaitu menyimpan informasi dari aktivitas pengunjung website di server dengan rentang waktu tertentu dan yang membedakannya adalah penempatan struktur script atau konfigurasi tertentu yang akan dilakukan.

Pada artikel kali ini, Kami akan memberikan panduan cara menambah session timeout dalam rentang waktu 1 tahun pada Laravel.

Konfigurasi .ENV

Langkah pertama, anda dapat melakukan editing pada file .env. File ini biasanya terletak pada directory utama laravel anda. Pada file .env, silahkan Anda tambahkan variable berikut:

SESSION_LIFETIME=525600

Cara mendapatkan nilai 525600, 365 hari * 24 jam * 60 menit = 525600 menit

Konfigurasi File PHP

Alternatif lainnya jika Anda ingin menambah session timeout, dapat dilakukan melalui file PHP di config/session.php. Silahkan disesuaikan dengan script dibawah:

 env('SESSION_LIFETIME', 43200),

…….

];

Seperti yang Anda lihat pada script diatas, secara default akan membaca file .env dan jika Anda secara kebetulan menghapus SESSION_LIFETIME yang telah dibuat sebelumnya dalam file .env, maka hal tersebut akan menambah 43200 menit.

Script Sederhana Mengakhiri Waktu Session (session timeout) di PHP

By Unknown

Session biasanya digunakan untuk membuat sebuah sesi login di PHP dan Tutorial PHP kali ini akan membahas bagaimana mengatur waktu kedaluwarsa sebuah session. Hal ini berguna untuk menambah keamanan sebuah aplikasi website. Nah untuk membuat session timeout di php script sederhana ini bisa Anda gunakan pada aplikasi Anda.


$expiry = 1800 ;
//session berakhir setelah 1800 detik atau 30 menit
    if (isset($_SESSION['waktu']) && (time() - $_SESSION['waktu'] > $expiry)) {
        session_unset();
        session_destroy();
    }
    $_SESSION['waktu'] = time();
Selain membuat session timeout di php Anda juga bisa menggunakan script untuk mengakhiri sebuah session melalui htaccess.

Cara menggunakan php session lifecycle

Kirimkan Ini lewat EmailBlogThis!Berbagi ke TwitterBerbagi ke Facebook

Catatan kali ini adalah mengenai cara membuat sebuah form login dan juga logout dengan menggunakan Session pada PHP. Pertanyaan yang muncul pertama kali dalam benak Anda mungkin adalah Apa itu Session?. Saat Anda menggunakan sebuah aplikasi, Anda membuka aplikasi tersebut, melakukan beberapa perubahan pada aplikasi tersebut dan Anda menutup aplikasi tersebut. Ini bisa disebut seperti Session. Komputer bisa mengetahui siapa Anda, kapan Anda membuka Aplikasi dan kapan Anda menutup Aplikasi. Tapi dalam internet, ini merupakan sebuah masalah. Internet tidak bisa mengetahui siapa Anda atau apa yang sedang Anda lakukan karena alamat HTTP tidak bisa menyimpan sebuah status/informasi.

Dari cerita singkat tadi, masalah yang ada pada internet bisa diatasi dengan yang namanya Session. Session dapat menyimpan sebuah informasi dimana informasi tersebut bisa kita akses pada semua halaman website yang kita buat. Secara default, Session akan terhapus sampai Anda menutup browser.

Jadi intinya Session ini bisa menyimpan informasi yang bisa di akses pada semua halaman sampai browser nya ditutup.

Akun User
Saya telah menyiapkan 2 data user untuk tutorial ini, diantaranya :

  1. User Admin
    Username : rizaldi
    Password : 12345678
  2. User Operator
    Username : siska
    Password : siska123

DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Sebagai persiapan awal, silahkan buat sebuah folder baru dengan nama login_php, lalu simpan pada folder xampp/htdocs/.


STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama user. Struktur tabelnya sebagai berikut :
    Cara menggunakan php session lifecycle
    CREATE TABLE IF NOT EXISTS `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(50) NOT NULL,
      `password` varchar(50) NOT NULL,
      `nama` varchar(200) NOT NULL,
      PRIMARY KEY (`id`)
    )

Baca Juga:

  • Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code
  • Tutorial PHP Bahasa Indonesia Lengkap Plus Source Code
  • Cara Membuat Laporan PDF Plus Filter Periode Tanggal dengan PHP dan MySQL
  • Cara Membuat Export Excel Plus Filter Tanggal dengan PhpSpreadsheet

STEP 3 – KONEKSI DATABASE
Pada step ini, kita akan membuat file koneksi.php yang berfungsi untuk menghubungkan dengan database MySQL. Silahkan buat file koneksi.php, lalu simpan di folder xampp/htdocs/login_php/. Berikut ini kodenya :


STEP 4 – FORM LOGIN
Langkah selanjutnya adalah membuat 1 buah file yang berisi form loginnya. Buat sebuah file dengan nama index.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut tampilan dan kodenya :

Cara menggunakan php session lifecycle




  Halaman Sebelum Login


  

Silahkan login terlebih dahulu...







session_start();
Skrip ini berfungsi untuk memulai/menjalankan session. karena disini kita akan membuat login menggunakan session.

$_SESSION[‘username‘]
Salah satu cara untuk mengambil value dari sebuah session adalah dengan struktur berikut $_SESSION[‘nama_session‘]. nama_session tersebut diisi sesuai dengan nama session yang kita buat saat mendeklarasikan/men-set sessionnya. Dalam tutorial ini saya set sessionnya dengan nama “username“. Kita akan set sessionnya pada proses login nanti pada step selanjutnya.

$_COOKIE[“message“]
Disini kita juga menggunakan yang namanya cookie. Apa sih cookie? cookie inifungsinya hampir sama dengan session. Hanya saja perbedaannya adalah cookie menyimpan informasinya di browser yang kita gunakan. Sementara session menyimpan informasinya pada server dari web itu sendiri. Cara untuk mengambil value dari cookie pun hampir sama dengan session yakni $_COOKIE[‘nama_cookie‘]. Cookie pada tutorial ini kita gunakan untuk menampung pesan error apabila login gagal.


STEP 5 – PROSES LOGIN
Langkah selanjutnya kita akan buat file untuk proses loginnya. Buat sebuah file dengan nama login.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut kodenya :

prepare("SELECT * FROM user WHERE username=:a AND password=:b");
$sql->bindParam(':a', $username);
$sql->bindParam(':b', $password);
$sql->execute(); // Eksekusi querynya

$data = $sql->fetch(); // Ambil datanya dari hasil query tadi

// Cek apakah variabel $data ada datanya atau tidak
if( ! empty($data)){ // Jika tidak sama dengan empty (kosong)
  $_SESSION['username'] = $data['username']; // Set session untuk username (simpan username di session)
  $_SESSION['nama'] = $data['nama']; // Set session untuk nama (simpan nama di session)
  
  setcookie("message","delete",time()-1); // Kita delete cookie message
  
  header("location: welcome.php"); // Kita redirect ke halaman welcome.php
}else{ // Jika $data nya kosong
  // Buat sebuah cookie untuk menampung data pesan kesalahan
  setcookie("message", "Maaf, Username atau Password salah", time()+3600);
  
  header("location: index.php"); // Redirect kembali ke halaman index.php
}
?>

include “koneksi.php”;
Kode tersebut berfungsi untuk me-load file koneksi.php.

$sql = $pdo->prepare(“SELECT * FROM user WHERE username=:a AND password=:b”);
$sql->bindParam(‘:a’, $username);
$sql->bindParam(‘:b’, $password);
$sql->execute();

Kode tersebut berfungsi untuk melakukan query ke database dan mengeksekusinya. Pada cotoh diatas, kita akan melakukan query untuk menampilkan data user berdasarkan username dan password yang telah di input pada form login.

Baca Juga:

  • Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code
  • Tutorial PHP Bahasa Indonesia Lengkap Plus Source Code
  • Cara Mudah Menambahkan Nomor Urut pada JQuery Datatables
  • Cara Mudah Menghitung Nilai IPK Menggunakan Pascal

$data = $sql->fetch()
Kode tersebut berfungsi untuk mengambil semua data hasil query dan menampung data-data tersebut di dalam sebuah array lalu menyimpannya ke dalam variabel $data. Dimana nantinya kita bisa memanggil data dari tabel pengguna dari hasil query diatas. Pada form login, saya memasukan username : rizaldi dan password: 12345678. Kalau kita lakukan print_r($data), maka hasilnya akan menjadi seperti gambar berikut :

Cara menggunakan php session lifecycle

Karena bentuk dari $data adalah array, maka ketika kita ingin mengakses data nya, kita tinggal panggil dengan $data[‘index_array‘]. Sebagai contoh saya ingin mengambil nama dari usernya, kita tinggal panggil $data[‘nama‘] atau kita juga bisa panggil dengan $data[3].

$_SESSION[‘username’] = $data[‘username’];
$_SESSION[‘nama’] = $data[‘nama’];
$_SESSION[‘role’] = $data[‘role’];

Sesuai yang saya katakan pada step sebelumnya, pada proses login, ketika data username dan password yang di masukkan pada form login sesuai dengan yang ada di database. Maka kita akan membuat/men-set sebuah session. Disini saya set 2 session, yang pertama adalah session username ($_SESSION[‘username’]). Session username ini saya isi dengan username yang diambil dari hasil query tadi ($data[‘username’]). Yang kedua adalah session nama ($_SESSION[‘nama’]). Session nama ini juga saya isi dengan nama yang diambil dari hasil query tadi ($data[‘nama’]).

setcookie(“message”, “Maaf, Username atau Password salah”, time()+3600);
Kode ini berfungsi untuk membuat sebuah cookie. Seperti yang saya jelaskan, cookie ini akan kita gunakan untuk menyimpan pesan error yang nantinya akan kita tampilkan pada form login. Disini saya set masa berlaku cookie nya 1 jam (time()+3600). Struktur dasar untuk set cookie ini adalah setcookie(“nama_cookie”, “isi_cookie”, masa_berlaku);


STEP 6 – HALAMAN SETELAH LOGIN
Selanjutnya kita akan buat file untuk halaman setelah loginnya. Buat sebuah file dengan nama welcome.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut tampilan dan kodenya :

Cara menggunakan php session lifecycle




  Halaman Setelah Login


  

Selamat datang

Anda berhasil login ke dalam aplikasi

Logout

echo $_SESSION[‘nama’];
Skrip ini berfungsi untuk memanggil session nama yang telah kita set tadi pada proses login. Dimana isinya adalah nama dari user yang login yang kita ambil dari tabel user di database.

Baca Juga:

  • Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code
  • Tutorial PHP Bahasa Indonesia Lengkap Plus Source Code
  • Cara Menggunakan jQuery DataTables dengan PHP dan MySQL
  • Cara Mudah Install Composer di Linux


STEP 7 – PROSES LOGOUT
Selanjutnya kita akan buat file untuk proses logoutnya. Buat sebuah file dengan nama logout.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut kodenya :

session_destroy();
Kode ini berfungsi untuk menghapus semua session yang ada pada website kita.


Sekian untuk tutorial kali ini. Jika ada hal yang ingin ditanyakan, langsung tanyakan saja lewat kolom komentar dibawah ini. Jangan lupa LIKE dan SHARE nya hehe, Terimakasih.

Bagaimana cara kerja session pada php?

Cara kerja Session: Saat pengunjung mengakses suatu halaman, pengunjung tersebut memulai session (digunakan fungsi session_start()). Bila dalam konfigurasi php, session.auto_start diset ke 1 maka php akan melakukan start session secara otomatis.

Apa gunanya session di php?

Apa itu Session di PHP? Session adalah mekanisme untuk mempertahankan informasi di semua halaman web yang berbeda untuk mengidentifikasi pengguna saat mereka menelusuri situs atau aplikasi.

Dimana session php disimpan?

Berbeda dengan cookies yang disimpan di browser, session disimpan di dalam web server.

Bagaimana cara mengakhiri session pada php?

Untuk mengakhiri session pada PHP, kita gunakan perintah session_destroy() , dengan perintah ini maka file session akan dihapus dari server. contohnya ketika user logout, maka session akan berakhir dan user diminta untuk login kembali.