Membuat Sistem Login dengan PHP dan MySQL

Sistem login pada website merupakan salah satu komponen yang tidak terpisahkan, terutama bagi website berbasis keanggotaan. Sistem login website memiliki beberapa fungsi di antaranya adalah untuk alasan privasi dan keamanan data anggota. Bagi beberapa website jejaring sosial, sistem login merupakan hal yang paling utama. Mengingat jejaring sosial merupakan website berbasis keanggotaan.

Melalui halaman ini akan dibahas mengenai bagaimana cara membuat sistem login menggunakan PHP, MySQL, dan HTML. Contoh kode yang disajikan di halaman ini masih sangat sederhana dan keamanannya masih perlu ditingkatkan.

Tahapan dalam pembuatan sistem login adalah (1) membuat form dengan html, (2) membaca data yang diinput melalui form, (3) mengecek kecocokan data yang diinput dengan data yang terdapat pada database, dan (4) mengijinkan pengguna untuk mengakses halaman tertentu jika data pengguna cocok dengan data pada database atau menolaknya jika tidak cocok disertai pemberitahuan.

Menyiapkan File

Buatlah tiga file masing-masing dengan nama index.php, login.php, dan logout.php. Isi dari file index.php hanya bisa dibaca oleh pengguna yang berhasil login. Sedangkan jika pengguna belum login, otomatis akan dialihkan ke halaman login.php. Pengguna bisa mengakhiri sesi loginnya melalui file logout.php

Isi file index.php dengan kode html bebas. Silakan cek bahwa file tersebut bisa diakses dan berfungsi dengan baik. Untuk membatasi akses ke file index.php, tambahkan kode berikut di baris paling atas.

<?php
session_start();
if(!isset($_SESSION['username'])){
header("location:login.php");
}
?>

Cek kembali index.php dengan mengaksesnya melalui browser. Perhatikan apa yang terjadi. Kamu akan langsung di bawa ke halaman login.php yang masih kosong.

Membuat Form

Pada langkah ini, kita menggunakan file login.php. Kode untuk membuat form adalah sebagai berikut.

<form action="login.php" method="post">
<p>
Username
<br/><input name="username" type="text">
</p>

<p>
Password
<br/><input name="password" type="password">
</p>

<p>
<input type="submit" value="Login">
</p>
</form>

Form di atas terdiri dari dua kolom input yaitu username dan password. Langkah berikutnya adalah membaca data yang diinput pengguna pada dua kolom berikut. Perhatikan bahwa metode form yang digunakan adalah post. Artinya, data yang diinput tidak akan bisa dibaca oleh browser seperti jika menggunakan metode get.

Membaca data yang diinput

Untuk membaca username dan password yang diinput, tambahkan kode berikut di atas kode form.

<?php
if (isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
}
?>

Variabel $username dan $password di atas berisi data yang diinput oleh pengunjung. Berikutnya akan dicocokan dengan data yang terdapat pada database.

Mengecek kecocokan username dan password dengan database

Langkah ini memerlukan koneksi dengan database MySQL. Pembahasannya bisa dibaca melalui halaman berikut.
Menghubungkan PHP dengan MySQL

O, iya ada yang lupa. Agar skrip ini bekerja, kita perlu membuat tabel dengan nama user di database terlebih dahulu. Silakan buat dengan cara yang termudah yaitu menggunakan bantuan phpMyAdmin. Tabelnya kurang lebih seperti berikut ini.

username password
user1 pass1
user2 pass3

Kita lanjutkan lagi denga kode PHPnya. Tepat di bawah kode untuk membaca input (langkah sebelum ini), tambahkan kode berikut.

if(mysqli_num_rows(mysqli_query($hubungkan,"SELECT username, password FROM user WHERE username='$username' AND password='$password'"))==1){
session_start();
$_SESSION['username'] = $username;
header("location:index.php");
}else{
echo 'Username atau password salah.';
}

Kode di atas akan mencocokan data yang diinput dengan data yang terdapat pada database dan menghitung banyaknya data (num_rows). Jika terdapat satu baris data berisi username beserta password pasangannya maka akan dijalankan skrip yang mengijinkan pengguna mengakses halaman index.php. Tetapi jika data yang dimasukan tidak cocok dengan database maka akan keluar pesan "Username atau password salah."

Pengguna bisa mengakhiri sesi loginnya melalui halaman logout.php. Buatlah tautan menuju file logout.php misalnya melalui index.php. Isi dengan kode sebagai berikut.

<?php
session_start();
session_destroy();
header("location:login.php");
?>

Kode Lengkap login.php

<?php
include('koneksi_database.php');

if (isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
}

if(mysqli_num_rows(mysqli_query($hubungkan,"SELECT username, password FROM user WHERE username='$username' AND password='$password'"))==1){

session_start();
$_SESSION['username'] = $username;
header("location:index.php");

}else{
echo 'Username atau password salah.';
}
?>

<form action="login.php" method="post">
<p>
Username
<br/><input name="username" type="text">
</p>

<p>
Password
<br/><input name="password" type="password">
</p>

<p>
<input type="submit" value="Login">
</p>
</form>

Sekian pembahasan mengenai bagaimana membuat sistem login menggunakan PHP dan MySQL. Semoga bermanfaat terutama bagi Kamu yang sedang belajar dasar pemrograman PHP.

Oleh Opan
Dipostkan June 01, 2017
Seorang guru matematika yang hobi ngeblog dan menulis. Dari ketiganya terwujudlah website ini sebagai sarana berbagi pengetahuan yang saya miliki.

Demi menghargai hak kekayaan intelektual, mohon untuk tidak menyalin sebagian atau seluruh halaman web ini dengan cara apa pun untuk ditampilkan di halaman web lain atau diklaim sebagai karya milik Anda. Tindakan tersebut hanya akan merugikan diri Anda sendiri. Jika membutuhkan halaman ini dengan tujuan untuk digunakan sendiri, silakan unduh atau cetak secara langsung.