Cara Membuat Login PHP + MySQL (Part 2)
🔐 Tutorial Login PHP + MySQL untuk Pemula (Part 2)
🔍 Apa yang Akan Kita Buat?

Hai teman-teman coder! Setelah part 1 tentang HTML login, sekarang kita bikin versi yang **nyambung ke database MySQL** dengan PHP. Cocok banget buat belajar backend dasar.
1. Desain Form Login & Registrasi
Tampilan form-nya seperti ini:
2. Buat Database dan Table
CREATE DATABASE db_login;
USE db_login;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
3. Koneksi Database (config.php)
<?php
$conn = new mysqli('localhost','root','','db_login');
if($conn->connect_error){
die('DB Error: '.$conn->connect_error);
}
?>
4. Registrasi Pengguna (register.php)
<?php
require 'config.php';
if($_SERVER['REQUEST_METHOD']=='POST'){
$u = $_POST['username'];
$e = $_POST['email'];
$p = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO users(username,email,password) VALUES(?,?,?)");
$stmt->bind_param("sss",$u,$e,$p);
if($stmt->execute()){
header("Location: login.php?registered=1");
} else echo "Error: ".$stmt->error;
}
?>
5. Login + Verifikasi (login.php)
<?php
session_start();
require 'config.php';
if($_SERVER['REQUEST_METHOD']=='POST'){
$ue = $_POST['username'];
$p = $_POST['password'];
$stmt = $conn->prepare("SELECT id,username,password FROM users WHERE username=? OR email=?");
$stmt->bind_param("ss",$ue,$ue);
$stmt->execute();
$res = $stmt->get_result();
if($res->num_rows==1){
$u = $res->fetch_assoc();
if(password_verify($p,$u['password'])){
session_regenerate_id();
$_SESSION['user_id']=$u['id'];
$_SESSION['username']=$u['username'];
header("Location: dashboard.php");
exit;
}
}
$err = "Username/email atau password salah!";
}
?>
<?= isset($err)? "<p style='color:red;'>$err</p>" : ""?>
6. Dashboard & Logout
// dashboard.php <?php session_start(); if(!isset($_SESSION['user_id'])) header("Location: login.php"); ?> <h2>Halo, <?= $_SESSION['username']?>!</h2> <a href="logout.php">Logout</a> // logout.php <?php session_start(); session_destroy(); header("Location: login.php"); exit; ?>7. Tips Aman 🔒
- Gunakan HTTPS saat online.
- Lakukan
session_regenerate_id()
setelah login. - Batasi percobaan login terus-menerus.
- Saring input agar aman dari XSS / SQL Injection.
🎉 Kesimpulan
Dalam 6 file (config, register, login, dashboard, logout), kamu sudah punya sistem login dasar yang aman dan siap dikembangkan!
Kalau pengin lanjut ke fitur OTP, reset password, atau multi-role, tulis komentar ya 😊
Posting Komentar untuk "Cara Membuat Login PHP + MySQL (Part 2)"
Posting Komentar