Kamis, 28 Januari 2021

Membuat Login Dengan PHP dan MySQL MD5

Membuat Login Dengan PHP dan MySQL MD5
Tools yang perlu dipersiapkan

  • Server lokal apache (telah tersedia diaplikasi xampp)
  • Database Mysql (telah tersedia juga di xampp)
  • Aplikasi teks editor seperti notepad++
Fitur/komponen yang dibutuhkan

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.
Konfigurasi Database

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.



Setiap projek PHP yang kita buat pada server lokal wajib di masukan didalam folder htdocs untuk nantinya projek yang kita buat dapat dipanggil melalui localhost.

Buat file koneksi.php

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.

Buat file login.php

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>

Pada file login ini berisi form html untuk input username dan password, form ini nantinya akan dikirim ke login_action.php Kalau kita lihat berdasarkan dsintak diatas kita menggunakan css bootstrap untuk tampilan form nya. Saya meload bootstrap pada bagian <head> dengan perintah

<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">

Buat file login_action.php

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>"; } ?>

Pada file login_action disini kita membuat sistem login dengan session, diamana pada awal sintak memulai variabel session dengan perintah session_start(), Kemudian kita include kan file koneksi ke database lewat file koneksi.php

session_start(); include "koneksi.php";

Selanjutnya kita membuat variabel untuk menampung nilai dari form login untuk username dan password, untuk passwordnya disini kita menggunakan fungsi enskripsi md5

$username = $_POST["username"]; $p = md5($_POST["password"]);

Selanjutnya kita buat perintah query untuk mengecek username dan password pada tabel user didalam database penjualan yang telah kita buat

$sql = "select * from user where username='".$username."' and password='".$p."' limit 1";

Selanjutnya kita mengeksekusi kueri tersebut

$hasil = mysqli_query ($kon,$sql);

selanjutnya kita buat fungsi untuk menghitung hasil row berdasarkan query yang kita jalankan diatas, dengan menggunakan function mysqli_num_rows. Kemudian nilai nya disimpan pada variabel $jumlah

$jumlah = mysqli_num_rows($hasil);

Selanjutnya kita membuat kondisi apabila variabel jumlah mempunyai nilai lebih dari 0 (artinya bahwa user tersebut datanya ada didatabase, maka akan di set nilai variabel session berdasarkan hasil baris query diatas)

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>"; }

Membuat file user.php

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>

Perhatikan pada sintak :

if (!isset($_SESSION["username"])) { echo "Anda harus login dulu <br><a href='login.php'>Klik disini</a>"; exit; }

Kondisi if ini akan mengecek apakah terdapat variabel session dengan nama username ? jika tidak ada artinya bahwa pengguna tersebut belum login, maka sistem akan menampilkan pemberitahuan bahwa pengguna tersebut harus login terlebih dahulu sebelum mengakses halaman user ini.


Membuat file logout.php

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'); ?>

Fungsi dari file logout adalah untuk membersihkan atau menghapus nilai yang tersimpan pada session dengan menggunakan perintah session_unset dan session_destroy. Nantinya halaman akan diarahkan kembali pada halaman login.

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.

Share This :
SUBSCRIBE TO OUR NEWSLETTER

Add Your Comments

bold <b>b</b>
italic <i>i</i>
underline <u>u</u>
HTML<code></code> use Parser

Emoticon
Parser
😊
😉
😀
😁
😎
😍
😜
😑
😇
💖
😯
😱
😭
👍
🍻