Membuat Form Login Dengan PHP Tanpa Database

Membuat Form Login Dengan PHP Tanpa Database

Membuat Form Login Dengan PHP Tanpa Database adalah solusi praktis untuk proyek kecil, prototipe, atau latihan sebelum memakai sistem autentikasi penuh.

Halo teman-teman, semoga kalian semangat belajar web development. Pada artikel ini kodelyly.com akan membahas cara membangun login sederhana berbasis PHP tanpa database, lengkap dari struktur file, contoh kode, sampai tips keamanan agar tetap tertata.

Membuat Form Login Dengan PHP Tanpa Database

Persiapan Struktur File

Agar rapi dan mudah dirawat, susun berkas seperti tabel berikut.

FileFungsi
index.phpHalaman form login
proses_login.phpMemproses kredensial dan membuat sesi
dashboard.phpHalaman privat setelah login
logout.phpMengakhiri sesi

Kode Form Login (index.php)

Form sederhana yang mengirim data ke proses_login.php. Pesan error ditampilkan jika login gagal.

<?php
session_start();
$err = $_SESSION['err'] ?? '';
unset($_SESSION['err']);
?>
<!doctype html>
<html lang="id">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Login Sederhana</title>
  <style>
    body{font-family:system-ui;margin:40px;}
    form{max-width:360px;display:grid;gap:12px}
    label{font-weight:600}
    input,button{padding:10px;border:1px solid #ccc;border-radius:8px}
  </style>
</head>
<body>
  <h1>Login</h1>
  <?php if($err): ?><p style="color:#b00020;"><?= htmlspecialchars($err) ?></p><?php endif; ?>
  <form method="post" action="proses_login.php">
    <label>Username</label>
    <input type="text" name="username" required />
    <label>Password</label>
    <input type="password" name="password" required />
    <button type="submit" name="login">Masuk</button>
  </form>
</body>
</html>

Logika Validasi Tanpa Database

Konsepnya adalah mencocokkan input dengan daftar pengguna yang di-hardcode. Untuk praktik yang lebih aman, gunakan password_hash dan password_verify.

// proses_login.php
<?php
session_start();
$users = [
  'admin'  => password_hash('rahasia123', PASSWORD_DEFAULT),
  'editor' => password_hash('sunting', PASSWORD_DEFAULT)
];
$username = trim($_POST['username'] ?? '');
$password = $_POST['password'] ?? '';
if(isset($users[$username]) && password_verify($password, $users[$username])){
  $_SESSION['login'] = $username;
  header('Location: dashboard.php');
  exit;
}
$_SESSION['err'] = 'Username atau password salah';
header('Location: index.php');
exit;
// dashboard.php
<?php
session_start();
if(!isset($_SESSION['login'])){ header('Location: index.php'); exit; }
$user = $_SESSION['login'];
?>
<h2>Halo, <?= htmlspecialchars($user) ?></h2>
<p>Selamat datang di area privat.</p>
<p><a href="logout.php">Keluar</a></p>
// logout.php
<?php
session_start();
session_destroy();
header('Location: index.php');

Uji Coba Dan Tips Keamanan

  1. Coba login memakai kombinasi admin dan rahasia123 atau editor dan sunting sesuai contoh di atas.
  2. Selalu gunakan password_hash dan password_verify agar password tidak disimpan polos.
  3. Aktifkan session_regenerate_id setelah login pada proyek nyata untuk mengurangi risiko session fixation.
  4. Jangan commit kredensial ke repositori publik dan jangan gunakan pendekatan ini untuk aplikasi produksi.

Baca Juga:
Jenis-Jenis Tipe Data di PHP

Kesimpulan

Membuat Form Login Dengan PHP Tanpa Database sangat cocok untuk belajar konsep autentikasi, demo, atau proyek kecil. Dengan struktur file rapi, form sederhana, serta validasi memakai password_hash dan session, kalian bisa memiliki login fungsional tanpa pemasangan database. Sekian artikel dari kodelyly.com, semoga bermanfaat dan selamat bereksperimen!

About the Author

BUKA KOMENTAR (0)
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.