Membuat Login Sederhana dengan PHP 7 dan MYSQLi Menggunakan Enkripsi MD5


Assalamualaikum Wr.Wb...
dengan diberikan nikmat dan rezeki dari Allah SWT, saya Mr.Gagaltotal666 akan
berbagi kepada anda yaitu tentang membuat login sederhana dengan PHP 7
dan MYSQLi menggunakan enkripsi MD5.

karena php 5 sudah jarang di pakai beserta session MySQL biasa
sekarang sudah saat nya move on ke php 7 dan update MySQLI
agar terhindar dari bypass sqli injection
oke langsung saja ikuti langkah berikut

pertama membuat database beserta akun user yang nanti
akan melakukan session login, contoh database yang saya
gunakan MySQL dan buat field nya seperti ini

$ create database db_login;

contoh table user beserta column field nya
- id_user
- username
- password
- fullname


contoh buat akun dengan insert mysql

$ INSERT INTO `user` (`id_user`, `username`, `password`, `fullname`) VALUES (NULL, 'gagaltotal', MD5('gagaltotal'), 'administrator');



oke kalau akun user sudah terbuat langsung saja buat config atau koneksi
agar terhubung nya PHP dan MySQL

contoh sederhana koneksi pada PHP 7 dan MySQLi

<?php
$db_host = "127.0.0.1";
$db_user = "root";
$db_pass = "";
$db_name = "db_login";
$koneksi = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if(mysqli_connect_errno()){
echo 'Gagal melakukan koneksi ke Database : '.mysqli_connect_error();
}
?>


front end yang saya pakai menggunakan Bootstrap v3.3.5
silakan anda download [disini]

selanjut nya membuat tampilan index.php
untuk sebuah form login untuk akun user tersebut
contoh sederhana login yang saya buat dengan Bootstrap v3.3.5

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Login latihan</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<style>
body {
background-color:#eee;
}
.row {
margin:100px auto;
width:300px;
text-align:center;
}
.login {
background-color:#fff;
padding:20px;
margin-top:20px;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<h2>Log In User</h2>
<div class="login">
<?php
if(isset($_GET['pesan'])){
        if($_GET['pesan'] == "gagal"){
       echo "Login gagal! username dan password salah!";
        }else if($_GET['pesan'] == "logout"){
       echo "Anda telah berhasil logout";
        }else if($_GET['pesan'] == "belum_login"){
       echo "Anda harus login untuk mengakses dashboard";
        }
        }
?>

<form role="form" action="cek-login.php" method="post">
<div class="form-group">
<input type="text" name="username" class="form-control" placeholder="Username" required autofocus />
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Password" required autofocus />
</div>
<div class="form-group">
<input type="submit" name="login" class="btn btn-primary btn-block"  value="Login sayang" />
</div>
</form>
</div>
Copyright &copy; 2018 wwww.gagaltotal666.website
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>


<?php if(isset($_GET['pesan'])){     if($_GET['pesan'] == "gagal"){  echo "Login gagal! username dan password salah!";         }else if($_GET['pesan'] == "logout"){  echo "Anda telah berhasil logout";         }else if($_GET['pesan'] == "belum_login"){  echo "Anda harus login untuk mengakses dashboard";         }        }?>

code diatas menjunjukan logika pesan yang terdiri dari pesan gagal, logout,
belum login dengan menggunakan $_GET
dan echo menunjukan string input suatu pesan

oke lanjut membuat cek-login.php
kenapa harus membuat cek log ? karena untuk istilah nya mah aksi
atau suatu proses nya user yang ingin login ke halaman nya
boleh juga session log anda taruh di index.php, namun akan
memakan banyak code dan size
jika di gabungkan dengan halaman login

contoh cek-login.php

<?php
// mengaktifkan session php
session_start();
// menghubungkan dengan koneksi
include 'koneksi.php';
// menangkap data yang dikirim dari form
$username = $_POST['username'];
$password = md5($_POST['password']);
// menyeleksi data dengan username dan password yang sesuai
$data = mysqli_query($koneksi,"select * from user where username='$username' and password='$password'");
// menghitung jumlah data yang ditemukan
$cek = mysqli_num_rows($data);
if($cek > 0){
  $cuy = mysqli_fetch_assoc($data);
$_SESSION['username'] = $username;
        $_SESSION['fullname'] = $cuy['fullname'];
$_SESSION['status'] = "login";
header("location: user.php");
}else{
header("location: index.php?pesan=gagal");
}
?>


oke langkah selanjut nya membuat logout.php
aksi logout ini akan membuat user bisa keluar dari halaman/dashboard
simple kok, contoh seperti ini

<?php
session_start();
session_destroy();
header("Location: index.php?pesan=logout");
?>

kenapa ada pesan logout ?, karena di index.php sudah di buat $_GET pemanggilan
untuk logout, automatis akan membaca dan mengeluarkan pesan sesuai input string
yang di $_GET pesan logout


terakhir buat dashboard user contoh disini saya dengan nama file user.php
untuk anda bebas terserah mau itu admin.php atau apalah

<?php
session_start();
if($_SESSION['status']!="login"){
header("location: index.php?pesan=belum_login");
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Dashboard User</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<style>
body {
background-color:#eee;
}
.row {
margin:100px auto;
width:300px;
text-align:center;
}
.login {
background-color:#fff;
padding:20px;
margin-top:20px;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<h2>Login Berhasil</h2>
<div class="login">
<p>Anda berhasil login dengan nama sebagai berikut:</p>
<p>Username: <?php echo $_SESSION['username']; ?><br>
fullname : <?php echo $_SESSION['fullname']; ?></p>
<p><a href="logout.php" class="btn btn-primary" onclick="return confirm('Yakin ingin Logout?')">Log out</a></p>
</div>
Copyright &copy; 2018 wwww.gagaltotal666.website
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>


<?php
session_start();
if($_SESSION['status']!="login"){
header("location: index.php?pesan=belum_login");
}
?>

logika code diatas ini menunjukan session untuk ke halaman login
jika si user belum login akan langsung mengarahkan ke halaman login
jika sudah login dengan benar akan langsung menuju ke user.php
jadi agar tidak terkena bypass atau disebut suatu keamanan sederhana

<?php echo $_SESSION['username']; ?>
<?php echo $_SESSION['fullname']; ?>

code session ini hanya menampilkan field dari database

oke jika sudah akan seperti ini






oke cukup sekian mengenai login sederhana dengan PHP 7 dan MySQLi
kalau ada kesalahan dan kekurangan nya mohon berikan masukan nya ya

download file latihan ini


sekian dan semoga bermanfaat....

Wasalamualaikum Wr.Wb...

Post a Comment

0 Comments