Diskon kelas baru hingga 25%! Masukkan kupon "lebihcepat" di kelas ini

X
Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

CARA MEMBUAT LOGIN PHP MYSQL

Belajar cara membuat sistem login dengan PHP dan MySQL langkah demi langkah. Panduan ini mudah diikuti untuk pembuatan fitur login yang aman pada website kamu.

Daftar Isi:

Persiapan Database
Membuat Form Login
Proses Autentikasi
Halaman Selamat Datang
Keamanan

Membuat sistem login adalah salah satu fitur dasar yang sering dibutuhkan oleh berbagai aplikasi web. Fitur ini memungkinkan pengguna untuk masuk ke dalam sistem dan mengakses konten yang dikhususkan untuk mereka. Artikel ini akan membimbing kamu membuat login dengan PHP dan MySQL.

Sebelum memulai, pastikan kamu sudah memiliki server lokal atau hosting dan database MySQL. Serta pastikan PHP dan MySQL sudah terinstal dan berjalan dengan baik.

Persiapan Database

Langkah pertama adalah membuat tabel untuk menyimpan data pengguna di database MySQL.

Membuat Database

Gunakan phpMyAdmin atau MySQL command line untuk membuat database. Misalnya dengan nama db_login.

Membuat Tabel Pengguna

Dalam database db_login, buat tabel dengan nama users. Tabel ini harus memiliki beberapa kolom seperti id, username, password, dan barangkali email.

Contoh SQL:

CREATE TABLE users (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(30) NOT NULL,
  password VARCHAR(60) NOT NULL,
  email VARCHAR(50)
);

Menambahkan Pengguna

Tambahkan pengguna ke dalam tabel untuk uji coba login. Pastikan menggunakan fungsi password_hash untuk mengenkripsi password.

Membuat Form Login

Buat file dengan nama login.php dan masukkan kode berikut untuk form login.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Login</title>
</head>
<body>
  <form action="authenticate.php" method="post">
    <label for="username">Username:</label>
    <input type="text" name="username" id="username" required>
    <label for="password">Password:</label>
    <input type="password" name="password" id="password" required>
    <button type="submit">Login</button>
  </form>
</body>
</html>

Proses Autentikasi

Buat file authenticate.php untuk memproses data yang dikirim dari form login.

<?php
session_start();

// Menghubungkan ke database
$db = new mysqli('localhost', 'root', '', 'db_login');

// Memeriksa koneksi
if ($db->connect_error) {
    die("Koneksi gagal: " . $db->connect_error);
}

// Menangkap data dari form
$username = $_POST['username'];
$password = $_POST['password'];

// Menyiapkan statement untuk mencegah SQL injection
$stmt = $db->prepare("SELECT id, username, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);

// Menjalankan statement
$stmt->execute();

// Mendapatkan hasil
$result = $stmt->get_result();
if ($user = $result->fetch_assoc()) {
    // Memeriksa password
    if (password_verify($password, $user['password'])) {
        // Menetapkan session
        $_SESSION['user_id'] = $user['id'];
        header("Location: welcome.php");
        exit;
    }
}

echo "Username atau password salah!";

Halaman Selamat Datang

Setelah autentikasi berhasil, buat halaman welcome.php sebagai berikut.

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}

echo "Selamat Datang, " . $_SESSION['username'];

Jangan lupa untuk selalu memulai setiap file dengan session_start() jika kamu ingin menggunakan session.

Keamanan

Selalu ingat untuk tidak menyimpan password dalam bentuk teks biasa. Gunakan password_hash ketika menyimpan dan password_verify saat memeriksa password. Selain itu, jangan lupa menggunakan statement yang disiapkan (prepared statements) untuk mencegah serangan SQL Injection.

Dengan mengikuti tutorial ini, kamu sekarang memiliki sistem login dasar yang bisa dikembangkan lebih lanjut sesuai kebutuhan aplikasi web kamu. Selamat mencoba!

cover kelas Kelas membuat website dengan HTML dan CSS
Kelas membuat website dengan HTML dan CSS

belajar membuat website kamu dari nol. Cocok untuk pemula

Lihat Kelas

Daftar newsletter skodev masukkan emailmu untuk dapat informasi menarik dari dunia koding