Tips dan Trick

Membuat Session Login Pada PHP

Session login pada PHP sangat berguna pada aplikasi web yang membutuhkan login dahulu untuk bisa menggunakan aplikasi tersebut. Dengan session login kita bisa mencegah seseorang untuk direct langsung terhadap suatu halaman proses yang ada pada aplikasi web. Kebetulan juga sekarang saya sedang membuat tugas project UAS mata kuliah Pemrograman Web. Nah pada postingan kali ini saya mau membagikan sedikit tutorial membuat session login pada PHP.

Berikut langkah-langkahnya

Baca Juga : Mengatasi Fitur Zimbra NE Hilang Setelah Upgrade Versi

1. Buat sebuah file bernama login.php, di file ini kita buat sebuah form login

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Login</title>
</head>
<body>
    <center>
    <h1>Silakan Login</h1>
    <form action="action-login.php" method="post">
    <table>
        <tr>
            <td>Username</td><td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>Password</td><td><input type="password" name="password"></td>
        </tr>
        <tr>
            <td></td><td><input type="reset" value="Cancel"><input type="submit" value="Login"></td>
        </tr>
    </table>
    </form>
    </center>
</body>
</html>

Yang perlu diperhatikan yaitu dibagian action pada tag form, karena nanti proses pembuatan session berada di file action tersebut.

Hasil tampilan sederhananya seperti berikut

2. Selanjutnya buat file action-login.php sesuai dengan yang didefinisikan pada form diatas

<?php
    // variable pendefinisian kredensial
    $usernamelogin = 'rizky';
    $passwordlogin = 'passwordlogin';

    // memulai session
    session_start();

    // mengambil isian dari form login
    $username = $_POST['username'];
    $password = $_POST['password'];

    // pengecekan kredensial login
    if ($username == $usernamelogin && $password == $passwordlogin) {
        session_start();
        $_SESSION['username'] = $username;
        header("Location: app.php");
    } 
    else {
        header("Location: login.php");
   }
?>
  • Dari script diatas, pertama saya define dahulu variable $usernamelogin dan $passwordlogin dengan suatu value
  • Kemudian jalankan session dengan syntax session_start();
  • Ambil value dari isian form login.php dengan syntax
    $username = $_POST[‘username’];
    $password = $_POST[‘password’];
  • Lakukan pengecekan kondisi menggunaan if dengan operator and, kalau isian username dan password benar dan sesuai dengan yang didefinisikan, maka akan menjalankan session, kemudian memasukan username login kedalam session, terlihat pada syntax berikut
    $_SESSION[‘username’] = $username;
  • Kemudian set redirect halaman ke app.php untuk menandakan bahwa kita berhasil login
    header(“Location: app.php”);
  • Kalau pengecekan usernama dan password tidak sesuai, akan dikembalikan ke halaman login.php
    header(“Location: login.php”);

3. Selanjutnya buat halaman app.php, isi dengan script berikut

<?php
    session_start();
    if (!isset($_SESSION['username'])){
        header("Location: login.php");
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <center>
    <h1>Selamat, anda berhasil login</h1>
    <a href="action-logout.php">Logout</a>
</center>
</body>
</html>[/php]

Hasil tampilannya seperti berikut

Dari script diatas, berikut keterangannya

  • Pertama, jalankan sessionnya dahulu dengan session_start()
  • Kemudian cek kondisi sessionnya, jika session username belum di set, redirect langsung ke halaman login.php, nah di script inilah yang mencegah seseorang untuk direct langsung ke halaman app.php ini
    session_start();
    if (!isset($_SESSION[‘username])) {
    header(“Location: login.php”);
    }
  • Pada halaman tersebut, jangan lupa membuat tombol logout, untuk mengakhiri session
    <a href=”action-logout.php”>Logout</a>

4. Yang terakhir, buat file action-logout.php, isi nya sebagai berikut

<?php
    session_start();
    $_SESSION['username'] = '';
    unset($_SESSION['username']);
    session_unset();
    session_destroy();
    header("Location: login.php");
?>

Keterangan dari script diatas yaitu

  • Jalankan session dahulu dengan session_start();
  • Set variable $_SESSION[‘username’] dengan value kosong
    $_SESSION[‘username’] = ”;
  • Selanjutnya unset variable $_SESSION[‘username’]
    unset($_SESSION[‘username’]);
  • Unset session dan destroy session untuk mematikan session yang sedang berjalan
    session_unset();
    session_destroy();
  • Redirect halaman menuju login.php kembali

Semestinya saat ini session login pada PHP sudah berjalan sebagaimana mestinya, untuk cek, coba langsung akses file app.php dengan browser lain, mestinya nanti akan langsung di redirect ke halaman login.php, karena belum ada session username yang terbentuk berdasarkan syntax PHP yang dibuat

Cukup mudah bukan?

Mungkin cukup sekian, semoga bermanfaat.

 

Share
Published by
Rizky Pratama

Recent Posts

Cara Ubah Port SSH pada Ubuntu 24.04 LTS

Pada bulan April 2024 lalu, Ubuntu telah release versi terbaru yaitu Ubuntu 24.04 LTS, sehingga…

1 month ago

Membuat Command Alias Dengan Parameter pada .zprofile Mac OS

Ngga nyangka akhirnya saya bisa login kembali ke blog saya yang sudah berdebu ini, kali…

3 months ago

Tips Zimbra : Mengatasi Service Cbpolicyd Starting Failed Setelah Migrasi ke Rocky Linux 8

Beberapa waktu lalu, Excellent mendapatkan project migrasi Zimbra dari versi Open Source Ke Zimbra Network…

8 months ago

Mengatasi Error “no matching host key type found. Their offer: ssh-rsa,ssh-dss” Setelah Upgrade MacOS Ventura Saat Melakukan SSH

Bulan Oktober 2022 lalu, Apple resmi release MacOS terbaru mereka, yaitu MacOS Ventura. Beberapa fitur…

2 years ago

Cara Memindahkan Saham ke Sekuritas Lain

Tidak terasa sudah cukup lama saya tidak update tulisan pada blog ini lagi, akhirnya kali…

3 years ago

Tahun Baru, Markas Baru, Tulisan Baru

Tahun baru 2022 telah tiba, tidak terasa waktu berjalan begitu cepat, banyak cerita dan kenangan…

3 years ago