Cara Membuat PHP Session Login Lengkap dengan Contoh Script

PHP session login dan logout adalah sebuah teknik yang sangat penting untuk mengatur keluar-masuknya pengguna ke website atau aplikasi. Namun, sejauh ini masih banyak website yang hanya menerapkan kredensial berupa username dan password untuk login

Padahal, kredensial saja tidaklah cukup untuk website modern. Anda harus menyiapkan sesi untuk setiap aktivitas pengguna guna memastikan bahwa hanya pengguna yang dapat masuk. Untuk memperjelas pemahaman Anda, mari kita bahas cara membuat sesi login dengan bahasa PHP pada artikel ini.

Cara Membuat PHP Session Login dan Logout MySQL

Untuk membuat mekanisme sesi login, Anda perlu siapkan text editor dan database MySQL. Lalu, ikuti setiap langkah pembuatannya di bawah ini.

1. Buat Database User di MySQL

Langkah yang pertama ialah membuat database user di MySQL. Database ini akan menyimpan informasi login, misalnya nama pengguna dan kata sandi. Pastikan untuk mendesain tabel dengan baik dan menyimpan informasi pengguna secara aman agar tidak terjadi pencurian data.

Contoh script untuk membuat database user yaitu:

CREATE TABLE `users` (

  id int(11) NOT NULL AUTO_INCREMENT,

  username varchar(255) NOT NULL,

  full_name varchar(255) NOT NULL,

  email varchar(255) NOT NULL,

  address varchar(255) NOT NULL,

  password varchar(64) NOT NULL,

  PRIMARY KEY(id)

);

INSERT INTO `users` (`username`, `fullname`, `email`, `address`, `password`) VALUES ('admin', ‘Admin Pusat`, '[email protected]', `Semarang`, SHA2('password', 256));

Eksekusi script di atas melalui aplikasi manajemen database, contohnya seperti MySQL Workbench, phpMyAdmin, atau Adminer. Kemudian, periksa hasilnya dengan perintah “SHOW COLUMNS FROM users”.

Baca Juga: 7 Contoh Text Editor Terbaik untuk Programmer Pemula, GRATIS

2. Buat Halaman Login

Setelah itu, buatlah desain tampilan halaman login yang jelas dan mudah dipahami oleh pengguna. Tambahkan formulir dengan input untuk nama pengguna dan kata sandi seperti halaman login pada umumnya. Kemudian, tambahkan beberapa contoh script PHP login dengan session berikut ini ke bagian atas halaman login Anda:

<?php

include 'config.php';

session_start();

 // login form in php with session and validation

if (isset($_SESSION['username'])) {

    header("Location: login_berhasil.php");

    exit();

}

if (isset($_POST['submit'])) {

    $email = mysqli_real_escape_string($conn, $_POST['email']);

    $password = hash('sha256', $_POST['password']);

    $sql = "SELECT * FROM users WHERE email='$email' AND password='$password'";

    $result = mysqli_query($conn, $sql);

    if ($result->num_rows > 0) {

        $row = mysqli_fetch_assoc($result);

        $_SESSION['username'] = $row['username'];

        header("Location: login_berhasil.php");

        exit();

    } else {

        echo "<script>alert('Email/password salah. Silakan coba lagi!')</script>";

    }

// akhir dari login form in php with session and validation

}

?>

Di bawah script di atas, barulah Anda buat halaman login menggunakan HTML seperti biasa. Kemudian, hubungkan elemen-elemen halaman Anda ke script PHP di atas agar dapat dieksekusi untuk validasi kredensial dan manajemen sesi.

Baca Juga: Apa itu Syntax? Definisi, Jenis, dan Contoh (Terlengkap)

3. Hubungkan Program PHP dengan Database MySQL

Script PHP session login dan logout yang akan Anda buat juga harus terhubung dengan MySQL supaya dapat berfungsi sebagaimana mestinya. Caranya ialah dengan memasukkan script di bawah ini ke dalam file config.php:

<?php

$server = "localhost";

$user = "database_username";

$pass = "database_username";

$database = "database_nama";

$conn = mysqli_connect($server, $user, $pass, $database);

if (!$conn) {

    die("Koneksi database gagal: " . mysqli_connect_error());

}

?>

Contoh script PHP login dengan session MySQL di atas akan mengambil data yang pengguna masukkan di kolom username dan password dari halaman login. Kemudian, data tersebut akan dicocokkan dengan data yang ada di tabel users yang sudah Anda buat di database.

Jika datanya sesuai, maka Anda akan mengarahkan pengguna ke halaman yang sudah Anda siapkan, biasanya berupa dashboard atau homepage. Namun, jika datanya keliru, maka pengguna akan mendapatkan notifikasi bahwa username atau password mereka tidak valid, sehingga harus login ulang.

Baca Juga: Belajar MySQL Server: 7 Cara Instal MySQL dengan Mudah & Praktis

Sudah Bisa Membuat PHP Session Login?

Sekarang, Anda sudah mengerti bahwa mekanisme PHP session login dan logout biasa ternyata belum cukup untuk kebutuhan website modern. Setiap aktivitas login dan logout harus disertai dengan sesi seperti yang sudah dijelaskan di atas. 

Selain memikirkan sesi login, Anda juga harus memastikan bahwa server Anda sudah terlindungi dengan baik. Layanan server management di RackH dapat membantu Anda untuk melakukannya. Mulai dari DDoS hingga serangan tertarget dari hacker, semuanya sudah terantisipasi.

RackH menggunakan metode anti DDoS canggih yang dapat mencegah serangan DDoS hingga tahap yang lebih jauh. Tim IT profesional RackH juga selalu tersedia 24 jam untuk menjaga keamanan server Anda, mulai dari serangan deface ringan hingga upaya pencurian data.