Membuat Session Login Pada PHP

Posted by

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.

 

4 comments

  1. Sip. Singkat padat, cocok buat ane yang sekedar refresh materi. Kadang masih gak ngeh buat apa dan gimana cara pakai session_start(); sama session_unset(); session_destroy();.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.