PHP Session & Authentication

Belajar membuat sistem login menggunakan session, logout, dan cara melindungi halaman biar gak bisa diakses sembarangan.

Intermediate 4 Hours Auth System
Video Pembelajaran

Tonton video ini dulu untuk memahami session, login, logout, dan cara kerja authentication.

1. Apa itu Session?

Session adalah cara PHP menyimpan data user secara sementara di server. Session biasanya dipakai untuk menyimpan status login.

Kalau cookie itu disimpan di browser, session disimpan di server (lebih aman).

2. Cara Mengaktifkan Session

Untuk menggunakan session, kita wajib menambahkan:

<?php
  session_start();
?>

Kode ini harus ada di bagian paling atas sebelum HTML.

3. Menyimpan Data Login ke Session

Setelah user login, kita bisa simpan data login di session seperti ini:

<?php
  session_start();

  $_SESSION["login"] = true;
  $_SESSION["username"] = "admin";
?>

4. Mengecek Apakah User Sudah Login

Halaman dashboard harus dilindungi, jadi kita cek session:

<?php
  session_start();

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

Ini disebut Protected Page.

5. Logout (Menghapus Session)

Logout artinya menghapus session supaya user keluar dari sistem.

<?php
  session_start();
  session_destroy();

  header("Location: login.php");
  exit;
?>

6. Mini Project: Sistem Login Session

Kita bikin struktur sederhana:

  • login.php → form login
  • process.php → validasi login + set session
  • dashboard.php → halaman yang dilindungi
  • logout.php → hapus session

Contoh process login:

<?php
  session_start();

  $realUser = "admin";
  $realPass = "12345";

  $username = $_POST["username"];
  $password = $_POST["password"];

  if($username == $realUser && $password == $realPass){
    $_SESSION["login"] = true;
    $_SESSION["username"] = $username;

    header("Location: dashboard.php");
    exit;
  } else {
    echo "Login gagal!";
  }
?>

7. Tips Security Authentication

Authentication adalah target utama hacker. Jadi minimal kamu harus ngerti ini:

  • Gunakan password hashing (password_hash)
  • Gunakan session timeout
  • Jangan simpan password plaintext
  • Gunakan CSRF token untuk form penting

Nanti di materi advanced kita bahas keamanan lebih serius.

8. Kesimpulan

Sekarang kamu udah ngerti session, login system, logout, dan protect page. Ini pondasi untuk sistem user yang beneran.

Next lesson: MySQL Database Basics (connect database + query).