Jumat, 17 Maret 2017

Membuat Form Login Dengan PHP Dan MySQL Dengan Enkripsi MD5 ( Part 2 )

  Tidak ada komentar

MEMBUAT FORM LOGIN PHP BAGIAN 2
Setelah sebelumnya part sebelumnya kita hanya membuat validasi form login dimana dia akan mengecek ketersediaan data pada database. Berhubung kita sudah masuk pada tahap ke 2 kita akan membuat sebuah session yang berfungsi sebagai penanda siapa sih yang masuk ? dan ketika sudah login maka cleint akan diarahkan ke sebuah halaman. Dan kita juga akan membuat file yang berfungsi sebagai logout yaitu dengan cara menghancurkan session. Penasaran ? oke ikuti langkah - langkah berikut. Oh iya pastikan sobat sudah mengikuti tutorial Part ke 1 karena pada tutorial kali ini adalah terusan dari tutorial sebelumnya

MEMBUAT VALIDASI LOGIN DENGAN PHP DAN MYSQL
Sebelumnya kita sudah membuat sebuah file yang bernama proses.php yang berfungsi sebagai validasi pada login dan mengangkap hasil username dan password yang di inputkan. Oke sekarang rubah syntax berikut menjadi seperti ini

proses.php
<?php
include"koneksi.php";

$username = $_POST['username'];
$password = $_POST['password'];

$query = mysqli_query($koneksi, "SELECT * FROM admin WHERE username = '$username' AND password = '$password'");
$cek = mysqli_num_rows($query);

if ($cek > 0) {
        session_start();  
        $_SESSION['username'] = $username;
        $_SESSION['status'] = 'login';
 header("location: admin/index.php");
}else{
 echo "<script>alert('Username Atau Password Salah');window.location='index.php'</script>";
}

 ?>

Disini saya membuat sebuah validasi yang saya berikan nama variabel cek. Jadi logikanya jika $cek memiliki nilai lebih besar dari 0 (Berarti username dan password tidak benar) maka dia akan membuat session baru dan dia akan otomatis redirect ke sebuah halaman. Dan jika username atau password salah akan muncul peringatan bahwa username dan password yang dimasukkan salah dan dia akan otomatis kembali ke halaman login

if ($cek > 0) {
        session_start();
        $_SESSION['username'] = $username;
        $_SESSION['status'] = 'login';
 header("location: admin/index.php");
}else{asu
 echo "<script>alert('Username Atau Password Salah');window.location='index.php'</script>";
}

Sedikit penjelasan disini. Setiap penggunaan session php diwajibkan untuk menjalankan fungsi session_start() terlebih dahulu untuk memulai sesssion. Setelah session dimulai baru penggunaan session lainya dapat dijalankan. Seperti yang dapat sobat perhatikan pada syntax di atas. Jika username dan password yang di inputkan benar maka kita membuat session username yang berisi user/admin yang login. Dan juga membuat session dengan nama status yang berisi 'login'. Kemudian akan dialihkan ke halaman admin. Halaman admin yang dimaksudkan ini terletak pada folder admin. Jadi saya membuat sebuah folder baru bernama admin pada folder kerja saya. Dalam folder admin ini kita akan membuat halaman sederhana untuk admin. Jadi jika login berhasil maka halaman akan dialihkan pada halaman ini. Buat sebuah folder dengan nama admin dan buat sebuah file index.php di dalamnya.

admin/index.php

<?php 
session_start();
if ($_SESSION['status'] == "") {
    header("location: ../index.php");
}
 ?>
<!DOCTYPE html>
<html>
<head>
    <title>Halaman Administrator</title>
</head>
<body style="font-family: lato">
<h1>HALAMAN ADMINISTRATOR</h1>
<h3><?php echo "Selamat Datang Bro, ".$_SESSION['username'].""; ?></h3>

<a href="logout.php">Logout</a>

</body>
</html>

Perhatikan pada bagian paling atas. Karena disni ita juga akan menggunakan session maka tetap kita harus memulai session terlebih dahulu dengan menggunakan fungsi session_start() kemudian melakukan teknik session
if ($_SESSION['status'] == "") {
    header("location: ../index.php");
}
Maksud dari syntax di atas adalah. Ketika login berhasil dia akan otomatis membuat sessio dengan nama username dan status. Nah disini kita cek apakah session status kosong ? kalau kosong berarti dia belum masuk login sebagai admin. Jadi kita tidak memperbolehkan dia mengakses halaman admin ini. Jadi halaman akan dialihkan ke halaman login tadi.

Selanjutnya ita buat file dengan nama logout.php dalam folder admin juga.
admin/logout.php
<?php
session_start();
session_destory();
header("location: ../index.php");

Pertama tetap mulai session dulu. Kemudian session_destroy() berfungsi untuk meghapus seleuruh session atau menghancurkan session. Dan kemudian akan dialihkan ke halaman login ( index.php )

Selesai. Sekarang waktunya kita mencoba form login yang kita buat tadi. Coba akses langsung halaman admin tanpa melakukan login. Maka akan secara otomatis dia mengarah ke halaman login karena status sessionya masih kosong alias dia belum login. Dan kemudian  coba juga masukkan username dan password yang benar maka akan dialihkan ke halaman admin. Dan ketika link logout diklik dia akan menghapus semua session dan logout kembali ke halaman login

Halaman administrator

Jika username atau password yang dimasukkan salah

Selesai ..

CARA MEMBUAT FORM LOGIN DENGAN ENKRIPSI MD5
Sebelum menginjak ke enkripsi kita harus mengetahui terlebih dahulu apa itu enkripsi ? Enkripsi adalah suatu metode yang digunakan untuk mengkodekan data sedemikian rupa sehingga keamanan informasinya terjaga dan tidak dapat dibaca tanpa di dekripsi (kebalikan dari proses enkripsi) dahulu. Untuk emmbuat enkripsi md5 ini PHP telah menyediakan fungsi yang bisa langsung digunakan untuk membuat enkripsi md5. Kata yang ingin dinekripsi bisa diletakkan pada paramter fungsi md5 misalnya md5("admin") .
echo md5("admin")
jalankan syntax di atas untuk mendapatkan hasil dari enkripsi. Letakkan dimana saja sebagai contoh saya meletakkanya di file index.php ( halaman login )



Dan hasil dar echo md5("admin"); adalah
21232f297a57a5a743894a0e4a801fc3 itu adalah hasil dari enkripsi kata "admin" sekarang ganti tabel password pada database sobat menjadi hasil dari enkripsi tadi. Maka akan seperti ini


Atau dengan metode lain. PHPMyAdmin juga menyediakan fitur enkripsi md5 jadi kita tidak perlu menjalankan fungsi md5di PHP. Bagaimana caranya ? masuk ke tabel yang ingin sobat berikan enkripsi. Lalu Klik edit, pastikan password belum terenkripsi


Pada function rubah passwordnya menjadi md5 seperti ini


Setelah klik go otomatis password akan terenkripsi


Sekarang kita berikan fungsi md5 pada file proses.php tadi agar form password tadi dapat teremkripsi menjadi md5 agar bisa cocok dengan yang ada di database. berikan fungsi md5 pada variabel password maka akan menjadi seperti ini
$password = md5($_POST['password']
proses.php
<?php
include"koneksi.php";

$username = $_POST['username'];
$password = md5($_POST['password']);

$query = mysqli_query($koneksi, "SELECT * FROM admin WHERE username = '$username' AND password = '$password'");
$cek = mysqli_num_rows($query);

if ($cek > 0) {
        session_start();  
        $_SESSION['username'] = $username;
        $_SESSION['status'] = 'login';
 header("location: admin/index.php");
}else{
 echo "<script>alert('Username Atau Password Salah');window.location='index.php'</script>";
}

 ?>

Jadi inputan yang ditangkap akan menjadi enkripsi md5 dan akan dicocokkan dengan tabel password yang dibuat tadi.

KESIMPULAN
Jadi sekarang kita sudah mengetahui alur dari pembuatan form login ini mulai dari membuat session dan memberikan enkripsi pada password. Untuk enkripsi ini tidak hanya menggunakan md5 tapi bisa juga menggunakan sha1 base64 dan lain - lain yang akan saya jelaskan pada tutorial selanjutnya. Jika ada yang ditanyakan silahkan berikan komentar, Sekian Terima Kasih

Tidak ada komentar :

Posting Komentar