Membuat Login Dengan PHP dan MySQL MD5
- Server lokal apache (telah tersedia diaplikasi xampp)
- Database Mysql (telah tersedia juga di xampp)
- Aplikasi teks editor seperti notepad++
Untuk membuat login dengan PHP dan mysqli kita membutuhkan beberapa komponen seperti
- Enskripsi md5
Enskirpsi md5 akan kita gunakan untuk meng enskripsi password, agar password pengguna tidak dapat terlihat didatabase. - Variabel Session
Session merupakan sebuah variabel sementara yang tersimpan di server. Kita dapat menyimpan data pengguna yang login misalnya; username, nama,email dan lainnya. - Function Mysqli
Fungsi mysqli digunakan untuk aplikasi php native yang berhubungan dengan database. Fungsi mysqli adalah penyempurnaan dari fungsi mysql, Penggunannyapun hanya pada versi PHP 5 keatas. - Framework Bootstrap
Pada tutorial yang saya berikan selalu menggunakan bootstrap untuk tampilannya. Karena tanpa CSS tentu saja tampilannya akan standar. Untuk bootstrap sendiri adalah opsional, kalian bisa juga tidak menggunakannya tidak apa-apa.
Untuk tahap pertama kita buat sebuah database, disini saya membuat database dengan nama penjualan
create database penjualan;
Buat sebuah tabel dengan nama user didalam database penjualan
create table user( id_user int not null auto_increment primary key, username varchar(30) not null, nama varchar(50), email varchar(30), password varchar(200) );
Insert data pengguna kedalam tabel user. nantinya lewat user ini yang akan kita pakai untuk login
INSERT INTO user (username,nama,email,password) VALUES ('rizky','Rizky Official','officialrizkypedia@gmail.com',md5(12345));
Perhatikan pada query diatas saya insert data pada tabel user dengan field username,nama,email, dan password. Coba perhatikan pada field password saya menggunakan md5 untuk enskrispsi jadi ketika di simpan maka password akan tersamarkan dengan kode acak seperti terlihat pada gambar berikut
Buat folder dalam htdocs
Bila kalian menggunakan xampp, didalam folder htdocs buat sebuah folder dengan nama penjualan.
Selanjutnya kita buat file koneksi.php untuk mengkoneksikan aplikasi PHP dengan database mysql.
<?php $host="localhost"; $user="root"; $password=""; $db="penjualan"; $kon = mysqli_connect($host,$user,$password,$db); if (!$kon){ die("Koneksi gagal:".mysqli_connect_error()); } ?>
File koneksi kita buat menggunakan function mysqli_connect. Fungsi ini untuk membuat koneksi database dengan PHP native. fungsi ini memiliki empat parameter yang pertama adalah host yang kita gunakan, dalam hal ini kita masih menggunakan localhost karena masih server lokal pada PC kita.
Kemudian variabel $user adalah nama user saat kita mengakses database mysql. Secara default user mysql yang dibuat adalah root, sesuaikan dengan nama user yang lain bila kalian telah mengganti default user tersebut.
Untuk selanjutnya password jika database kita menggunakan password, jika tidak dikosongkan untuk nilai variabel $password. Terakhir adalah nama database yang kita gunakan didalam variabel $db.
Apabila ada yang belum sesuai dengan konfigurasi koneksi database maka sistem akan menampilkan koneksi gagal.
Sekarang kita buat file login.php simpan didalam folder penjualan.
<!DOCTYPE html> <html> <head> <!-- Load file CSS Bootstrap --> <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> </head> <body> <div class="container"> <h2>Login dengan PHP</h2><br> <form method="post" action="login_action.php"> <div class="form-group"> <label>Username:</label> <input type="text" class="form-control" name="username" placeholder="Masukan Username"> </div> <div class="form-group"> <label>Password:</label> <input type="password" class="form-control" name="password" placeholder="Masukan Password"> </div> <div class="form-group"> <input type="submit" class="btn btn-primary" value="Login"> </div> </form> </div> </body> </html>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
Tahap berikutnya kita membuat file untuk menerima nilai (value) dari kiriman form login.php. Buat file dengan nama login_action.php
<?php session_start(); include "koneksi.php"; $username = $_POST["username"]; $p = md5($_POST["password"]); $sql = "select * from user where username='".$username."' and password='".$p."' limit 1"; $hasil = mysqli_query ($kon,$sql); $jumlah = mysqli_num_rows($hasil); if ($jumlah>0) { $row = mysqli_fetch_assoc($hasil); $_SESSION["id_user"]=$row["id_user"]; $_SESSION["username"]=$row["username"]; $_SESSION["nama"]=$row["nama"]; $_SESSION["email"]=$row["email"]; header("Location:user.php"); }else { echo "Username atau password salah <br><a href='login.php'>Kembali</a>"; } ?>
session_start(); include "koneksi.php";
$username = $_POST["username"]; $p = md5($_POST["password"]);
$sql = "select * from user where username='".$username."' and password='".$p."' limit 1";
$hasil = mysqli_query ($kon,$sql);
$jumlah = mysqli_num_rows($hasil);
disini saya menyimpan session untuk id_user,username,nama,email. Nantinya setiap nilai yang disimpan pada variabel session dapat kita akses.
Kemudian selanjutnya halaman akan di arahkan pada file user.php, namun apabila kondisi tidak tepenuhi maka blok else yang akan dikerjakan yaitu menampilkan pemberitahuan ‘Username atau password salah’
if ($jumlah>0) { $row = mysqli_fetch_assoc($hasil); $_SESSION["id_user"]=$row["id_user"]; $_SESSION["username"]=$row["username"]; $_SESSION["nama"]=$row["nama"]; $_SESSION["email"]=$row["email"]; header("Location:user.php"); }else { echo "Username atau password salah <br><a href='login.php'>Kembali</a>"; }
Selanjutnya kita buat file user.php file ini berfungsi untuk menampilkan halaman user, hanya user yang telah login yang dapat mengakses halaman ini.
<?php session_start(); if (!isset($_SESSION["username"])) { echo "Anda harus login dulu <br><a href='login.php'>Klik disini</a>"; exit; } $id_user=$_SESSION["id_user"]; $username=$_SESSION["username"]; $nama=$_SESSION["nama"]; $email=$_SESSION["email"]; ?> <!DOCTYPE html> <html> <head> <!-- Load file CSS Bootstrap offline --> <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> </head> <body> <div class="jumbotron text-center"> <h1>Selamat Datang di Halaman User</h1> <h4>Halaman ini hanya dapat diakses setelah login</h4> <p>Nama : <?php echo $nama; ?></p> <p>Username : <?php echo $username; ?></p> <p>Email : <?php echo $email; ?></p> <a href="logout.php" class="btn btn-warning" role="button">Logout</a> </div> </body> </html>
if (!isset($_SESSION["username"])) { echo "Anda harus login dulu <br><a href='login.php'>Klik disini</a>"; exit; }
Terakhir kita membuat sebuah file dengan nama logout.php
<?php session_start(); $_SESSION['id_user']=''; $_SESSION['username']=''; $_SESSION['nama']=''; $_SESSION['email']=''; unset($_SESSION['id_user']); unset($_SESSION['username']); unset($_SESSION['nama']); unset($_SESSION['email']); session_unset(); session_destroy(); header('Location:login.php'); ?>
Uji Coba
Sekarang kita uji coba aplikasi dengan sistem login sederhana yang kita buat. Buka halaman login dengan mengetik di bagian URL browser
http://localhost/penjualan/login.php
kemudian saya mengisi isian username dan password dengan isian yang SALAH
Maka ketika saya menekan tombol login sistem akan memberi pesan seperti berikut
Apabila saya memasukan dengan username dan password yang BENAR maka saya akan masuk ke halaman user
Kemudian apabila saya ingin kelua tekan tombol Logout, saya akan diarahkan kembali kehalaman login
Sementara apabila saya mencoba untuk mengakses halaman user.php TANPA melalui LOGIN maka hasilnya adalah seperti berikut
Kesimpulan
Sekian tutorial PHP kali ini mengenai cara membuat form login php menggunakan session. Dapat saya simpulkan bahwa dengan menggunakan sistem login maka kita dapat mengidentifikasi pengguna yang mengakses halaman website kita serta membatasi hak akses dari pengguna. dengan menggunakan Session kita dapat menyimpan data sementara pengguna yang sedang mengakses aplikasi.