Login dan Register merupakan fitur dasar yang hampir selalu digunakan dalam pengembangan aplikasi web, terutama pada halaman admin atau sistem berbasis akun pengguna.
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:
- Ambil data dari form
- Hash password
- Simpan ke database
Penting: Jangan menyimpan password dalam bentuk teks asli.
Membuat Halaman Login
Proses login:
- Cocokkan email/username
- Verifikasi password
- 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)
0 Komentar