Membuat Autentikasi Pada PHP

Pada dasarnya tutorial ini akan membuat authentication atau autentikasi pada PHP yang meliputi guest dan auth. Jadi guest digunakan saat suatu pengguna tidak login pada aplikasi yang Anda buat saat ini, sedangkan auth pengguna yang sudah login.

Daftar isi:

Baca juga:

Kenapa menggunakan session?

Session atau sesi adalah cara untuk menyimpan informasi dalam variabel untuk digunakan di beberapa halaman situs web. Jadi sesi akan disimpan disisi peladen bukan disisi klien. Menggunakan Sesi hanya bersifat sementara setelah Anda menutup aplikasi web browser, sesi akan terhapus dan Anda harus konfigurasi variabel sesi untuk menggunakannya kembali.

Menyimpan autentikasi dengan session

Membuat autentikasi membutuhkan session untuk menyimpan nilai yang diperlukan agar pengguna tetap bisa masuk di aplikasi apabila session masih ada. Jika session tidak ada maka akan diahlikan ke halaman login.

Menambahkan session_start

Setiap kali menggunakan session Anda harus menggunakan session_start(), kanapa harus menggunakannya? Jika Anda tidak menggunakan maka session tidak akan pernah bisa digunakan, meskipun semua konfigurasi menggunakan session sudah benar. Jadi letakan skrip session_start() dibawah ini pada bagian atas berkas theNavbar.php:

<?php

session_start();

?>

Lihat gambar dibawah ini:

gambar 1

Skrip menyimpan session

Skrip dibawah ini digunakan untuk membuat session dengan nama user_login dan nilai nama pengguna (username), letakan skrip dibawah ini pada berkas login.php:

$_SESSION['user_login'] = $user->username;

Lihat gambar dibawah ini jika Anda ingin menerapkan skrip diatas:

gambar 2

Menerapkan guest dan auth

Jadi, bila menerapkan autentikasi pasti Anda ingin halaman tertentu tidak akan bisa diakses oleh pengguna, misalnya jika suatu pengguna sudah masuk maka tidak akan bisa mengakses ke halaman login dan register. Begitu pula sebaliknya jika suatu pengguna belum masuk maka tidak akan bisa masuk ke halaman utama. Silakan simak penjelasan berikut ini:

Skrip guest

Simpan skrip guest pada halaman login dan regiser, salin dan tempelkan pada berkas login.php dan register.php. Lihat skrip dibawah ini:

<?php
    if (isset($_SESSION['user_login'])) {
        header('Location:index.php');
    }
?>

Gunakan cara dibawah ini berdasarkan skrip diatas:

gambar 3

Skrip auth

Sedangkan skrip auth digunakan pada halaman utama, kemudian salin dan tempelkan pada berkas index.php. Lihat skrip dibawah ini:

<?php
    if (!isset($_SESSION['user_login'])) {
        header('Location:login.php');
    }
?>

Lihat gambar dibawah ini untuk penerapan dari skrip diatas:

gambar 4

Berikut penjelasannya:

  1. isset($_SESSION['user_login']) - Jika session dengan nama user_login dan nilainya masih ada maka bernilai true.
  2. header('Location:name.php') - digunakan untuk mengahlikan ke halaman login dan utama.

Catatan: Mungkin skrip diatas hanya berbeda pada operator NOT(!), berikut penjelasannya. Jika $_SESSION['user_login'] ada maka pengguna dikatakan sudah login dan begitu pula sebaliknya. Maka penggunakan (!) kebalikan jika pengguna sudah masuk. Misalnya bernilai true dikasih (!) maka akan bernilai false dan begitu sebaliknya.

Fitur logout

Setiap halaman situs yang menyediakan autentikasi pasti memiliki logout atau keluar, biasanya tombol seperti itu akan ada bila suatu pengguna telah masuk ke aplikasi tersebut. Tentu fitur ini sangat penting, bagaimana bisa aplikasi menyediakan halaman login dan tidak ada fitur logout.

Skrip logout

Silakan salin skrip dibawah ini pada berkas logout.php, saya memberikan session_star() kembali karena tidak ada hubungan dengan berkas theNavbar.php. Sedangkan session_destroy() untuk menghapus semua session pada aplikasi yang Anda buat saat ini. Setelah tombol session terhapus maka halaman akan diahlikan ke halaman login.

<?php

session_start();

session_destroy();

header('Location:login.php');

Skrip tombol logout

Salin skrip dibawah ini ke berkas theNavbar.php yang akan digunakan untuk menganti menu navbar. Jadi, bila pengguna belum masuk maka akan menampilkan menu login dan register. Sedangkan pengguna yang sudah masuk hanya menampilkan menu logout.

<?php if (!isset($_SESSION['user_login'])): ?>
    <a class="navbar-item is-tab" href="login.php">Login</a>
    <a class="navbar-item is-tab" href="register.php">Register</a>
<?php else: ?>
    <a class="navbar-item is-tab" href="logout.php">Logout</a>
<?php endif; ?>

Lihat gambar dibawah ini untuk meletakan skrip diatas:

gambar 5

Selamat Anda sudah selesai mengikuti tutorial ini dan semoga Anda berhasil mengikutinya dengan baik dan benar. Silakan komentar jika ada keluhan.


profil

DITULIS OLEH

Febri Hidayan

Berikan saya sponsor terbaik Anda agar saya tetap semangat menulis artikel yang bermanfaat. Terimakasih 😊