Cara Membuat Login PHP + MySQL (Part 2)

🔐 Tutorial Login PHP + MySQL untuk Pemula (Part 2)

🔍 Apa yang Akan Kita Buat?

Preview Halaman Login

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:

Form Login PHP MySQL

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)

Form Registrasi 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)

Form 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)"