Login dan Register dengan PHP & MySQL

Login dan Register merupakan fitur dasar yang hampir selalu digunakan dalam pengembangan aplikasi web, terutama pada halaman admin atau sistem berbasis akun pengguna.

Halaman login menggunakan PHP dan MySQL

Pada tutorial ini kita akan membangun sistem login dan register sederhana menggunakan PHP Native dan MySQL dengan koneksi PDO.

Apa yang Akan Dipelajari

  • Login dan register menggunakan PHP Native
  • Koneksi database MySQL dengan PDO
  • Penggunaan session untuk autentikasi
  • Struktur sederhana halaman login, register, dan timeline

Catatan: Tutorial ini fokus pada logika backend. Untuk tampilan, saya menggunakan Bootstrap tanpa membahas detail class CSS-nya.

Persiapan Alat dan Bahan

Alat

  • Text editor (VS Code / sejenisnya)
  • Web browser (Chrome, Firefox, dll)
  • Web server (XAMPP / Laragon / sejenis)

Bahan

  • Bootstrap (opsional)
  • Beberapa gambar pendukung

Membuat Project Baru

Buat folder baru di htdocs dengan nama:

php-login-register

Struktur folder sederhana:


php-login-register/
├─ css/
├─ js/
├─ img/
├─ config.php
├─ login.php
├─ register.php
├─ auth.php
├─ timeline.php

Menyiapkan Database

Buka phpMyAdmin (http://localhost/phpmyadmin) dan buat database baru, misalnya:

db_love

Struktur Tabel users


CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) UNIQUE NOT NULL,
  email VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL,
  name VARCHAR(255) NOT NULL,
  photo VARCHAR(255) DEFAULT 'default.svg'
) ENGINE=InnoDB;

Membuat Koneksi Database (PDO)

Buat file config.php:

<?php
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "db_love";

try {
    $db = new PDO(
        "mysql:host=$db_host;dbname=$db_name;charset=UTF8",
        $db_user,
        $db_pass,
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
} catch (PDOException $e) {
    die("Koneksi database gagal: " . $e->getMessage());
}

Jika halaman config.php tidak menampilkan error, maka koneksi berhasil.

Konsep Session pada Login

Session digunakan untuk menyimpan status login user. Agar bisa menggunakan session, kita wajib memanggil:

session_start();

Ketika login berhasil, data user akan disimpan ke dalam variabel:

$_SESSION["user"]

Membuat File auth.php

File ini bertugas untuk membatasi halaman agar hanya bisa diakses oleh user yang sudah login.

<?php
session_start();

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

Membuat Halaman Register

Alur register:

  1. Ambil data dari form
  2. Hash password
  3. Simpan ke database

Penting: Jangan menyimpan password dalam bentuk teks asli.

Membuat Halaman Login

Proses login:

  1. Cocokkan email/username
  2. Verifikasi password
  3. Simpan user ke session

Gunakan fungsi password_verify() untuk mencocokkan password.

Membuat Halaman Timeline

Halaman ini hanya bisa diakses setelah login.

Di bagian atas file timeline.php:

<?php
require_once "auth.php";
?>

Karena auth.php sudah mengecek session, user yang belum login otomatis akan dialihkan ke halaman login.

Kesimpulan

  • Sistem login & register adalah fondasi aplikasi web
  • PDO membuat query lebih aman dari SQL Injection
  • Session digunakan untuk menjaga status login user
  • Struktur sederhana memudahkan pengembangan lanjutan

Pada artikel selanjutnya, sistem ini bisa dikembangkan dengan:

  • Logout
  • Role user (admin & member)
  • CSRF protection
  • Remember me (cookie)

Posting Komentar

0 Komentar