Database
Register dan Login umumnya merupakan sebuah fitur yang ada didalam
website, seperti halnya jika kita tahu ada Facebook, Twitter, Github dan
masih banyak lagi. Situs-situs tersebut mempunyai fitur register untuk
mendaftar sebuah akun dan login untuk masuk kedalam akun tersebut.
Oke pada artikel kali ini kita semua akan mencoba membuat proses
Register dan Login dengan menggunakan PHP dan MySQLi dengan
menggunakan teknik AJAX.
Sebelum kita membuat proses Register dan Login tentunya kita harus
membuat sebuah koneksi antara PHP kita dengan MySQL. Jadi
pembahasan diartikel pertama ini adalah bagaimana cara membuat
sebuah koneksi database yang fungsinya untuk menghubungkan project
kita nanti ke database.
Oke mari kita mulai, silahkan buat folder baru dengan nama register-
login-ajax-php didalam folder C:/XAMPP/htdocs (jika kalian
menggunakan XAMPP).
Setelah itu silahkan kalian buka project kalian dengan text editor
seperti Sublime Text, Visual Studi Code atau dengan yang lainnya.
Dan sialhkan kalian tulis kode dibawah ini ke dalam file koneksi.php, berikut
kodenya :
<?php
//deklasrasi variabel
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "db_ajax_php";
if($connection) {
//echo "Koneksi Berhasil!";
} else {
echo "Koneksi Gagal! : ". mysqli_connect_error();
}
?>
Tidak ketinggalan juga, kita juga akan belajar menerapkan validasi data
yang diinputkan dengan menggunakan Library JavaScript yang sangat
terkenal untuk membuat sebuat alert. Yups benar yaitu Sweet Alert2.
<title>Register Akun</title>
</head>
<body>
<div class="form-group">
<label>Nama Lengkap</label>
<input type="text" class="form-control" id="nama_lengkap"
placeholder="Masukkan Nama Lengkap">
</div>
<div class="form-group">
<label>Username</label>
<input type="text" class="form-control" id="username"
placeholder="Masukkan Username">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" id="password"
placeholder="Masukkan Password">
</div>
</div>
</div>
</div>
</div>
</div>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-
sweetalert2/8.11.8/sweetalert2.all.min.js"></script>
<script>
$(document).ready(function() {
$(".btn-register").click( function() {
if (nama_lengkap.length == "") {
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Nama Lengkap Wajib Diisi !'
});
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Username Wajib Diisi !'
});
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Password Wajib Diisi !'
});
} else {
//ajax
$.ajax({
url: "simpan-register.php",
type: "POST",
data: {
"nama_lengkap": nama_lengkap,
"username": username,
"password": password
},
success:function(response){
if (response == "success") {
Swal.fire({
type: 'success',
title: 'Register Berhasil!',
text: 'silahkan login!'
});
$("#nama_lengkap").val('');
$("#username").val('');
$("#password").val('');
} else {
Swal.fire({
type: 'error',
title: 'Register Gagal!',
text: 'silahkan coba lagi!'
});
console.log(response);
},
error:function(response){
Swal.fire({
type: 'error',
title: 'Opps!',
text: 'server error!'
});
}
})
});
});
</script>
</body>
</html>
Kode diatas adalah sebuah event klik dari jQuery apabila ada sebuah class
dengan nama btn-register di klik, maka proses didalamnya akan
dijalankan.
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Nama Lengkap Wajib Diisi !'
});
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Username Wajib Diisi !'
});
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Password Wajib Diisi !'
});
} else {
Oke sekarang jika kita perhatikan pada proses AJAX untuk menyimpan
data register, URL yang akan digunakan untuk menyimpan data
adalah simpan-register.php.
Maka sekarang silahkan kita buat file baru dengan nama simpan-
register.php didalam project kita, dan masukkan kode dibawah ini :
<?php
include('koneksi.php');
$nama_lengkap = $_POST['nama_lengkap'];
$username = $_POST['username'];
$password = MD5($_POST['password']);
if($connection->query($query)) {
echo "success";
} else {
echo "error";
Kode diatas diigunakan untuk menympan proses registrasi, mari kita bahas
perbagian-bagian kodenya. Sekarang coba perhatikan kode berikut ini :
include('koneksi.php');
Sekarang silahkan kita coba menguji proses Register kita dengan cara
mengetikkan di browser http://localhost/register-login-ajax-php/register.php.
Maka kurang lebih tampilannya seperti gambar diabwah ini :
<title>Login Akun</title>
</head>
<body>
<div class="form-group">
<label>Username</label>
<input type="text" class="form-control" id="username"
placeholder="Masukkan Username">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" id="password"
placeholder="Masukkan Password">
</div>
</div>
</div>
</div>
</div>
</div>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-
sweetalert2/8.11.8/sweetalert2.all.min.js"></script>
<script>
$(document).ready(function() {
$(".btn-login").click( function() {
if(username.length == "") {
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Username Wajib Diisi !'
});
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Password Wajib Diisi !'
});
} else {
$.ajax({
url: "cek-login.php",
type: "POST",
data: {
"username": username,
"password": password
},
success:function(response){
if (response == "success") {
Swal.fire({
type: 'success',
title: 'Login Berhasil!',
text: 'Anda akan di arahkan dalam 3 Detik',
timer: 3000,
showCancelButton: false,
showConfirmButton: false
})
.then (function() {
window.location.href = "dashboard.php";
});
} else {
Swal.fire({
type: 'error',
title: 'Login Gagal!',
text: 'silahkan coba lagi!'
});
console.log(response);
},
error:function(response){
Swal.fire({
type: 'error',
title: 'Opps!',
text: 'server error!'
});
console.log(response);
});
});
});
</script>
</body>
</html>
Kode diatas adalah sebuah event klik dari jQuery apabila ada sebuah class
dengan nama btn-login di klik, maka proses didalamnya akan dijalankan.
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Username Wajib Diisi !'
});
Swal.fire({
type: 'warning',
title: 'Oops...',
text: 'Password Wajib Diisi !'
});
} else {
Oke sekarang jika kita perhatikan pada proses AJAX untuk proses
login, URL yang akan digunakan untuk proses login adalah cek-login.php.
<?php
session_start();
include('koneksi.php');
$username = $_POST['username'];
$password = MD5($_POST['password']);
//query
$query = "SELECT * FROM tbl_users WHERE username='$username' AND
password='$password'";
$result = mysqli_query($connection, $query);
$num_row = mysqli_num_rows($result);
$row = mysqli_fetch_array($result);
if($num_row >=1) {
echo "success";
$_SESSION['id_user'] = $row['id_user'];
$_SESSION['nama_lengkap'] = $row['nama_lengkap'];
$_SESSION['username'] = $row['username'];
} else {
echo "error";
?>
Kode diatas merupakan kode yang digunakan untuk proses login, sekarang
mari kita bahas perbagian dari kode diatas, sekarang coba perhatikan kode
berikut ini :
session_start();
Kode diatas merupakan dklarasi variabel yang mana isinya didaptkan dari
proses Ajax.
Kode diatas merupakan sebuah Query untuk mengecek apakah data yang
diinputkan ada didalam database.
Oke sekarang coba kita jalankan dengan cara
mengetikkan http://localhost/register-login-ajax-php/login.php, maka kurang
lebih tampilannya seperti berikut ini :
session_start();
if(!$_SESSION['id_user']){
header("location: login.php");
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-
fit=no">
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<title>Dashboard</title>
</head>
<body>
<div class="col-md-3">
<ul class="list-group">
<li class="list-group-item active">MAIN MENU</li>
<a href="dashboard.php" class="list-group-item" style="color:
#212529;">Dashboard</a>
<li class="list-group-item">Profile</li>
<a href="logout.php" class="list-group-item" style="color:
#212529;">Logout</a>
</ul>
</div>
<div class="col-md-9">
<div class="card">
<div class="card-body">
<label>DASBOARD</label>
<hr>
</div>
</div>
</div>
</div>
</div>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
></script>
</body>
</html>
session_start();
if(!$_SESSION['id_user']){
header("location: login.php");
}
?>
Kode diatas digunakan untuk pengecekan sebuah session user yang login.
Jika session tidak ditemukan maka otomatis akan di redirect atau
diarahkan ke halaman login.
Jika kalian melakukan proses login dan berhasil, maka kurang lebih
tampilannya seperti berikut ini :
Terakhir, sekarang kita buat file baru dengan nama logout.php, dan
silahkan masukkan kode berikut ini :
<?php
session_start();
session_destroy();
header("location:login.php");
?>
Kode diatas digunakan untuk menghapus session user yang sudah login
dan kemudian akan diarahkan ke halaman login.php.