Sistem Login Register Part12 – Login User dan Menggunakan Password Verify

Febri Hidayan Komentar

Sistem Login Register Part12 – Login User dan Menggunakan Password Verify

Sebelumnya kita sudah belajar cara membuat, tentang pencegahan username kembar pada saat kita register user. Sekarang tiba waktunya untuk login user dan cara menggunakan password_verify silakan lihat dibawah ini.

Login User dan Menggunakan Password Verify

Pada halaman member suatu blog atau website pasti ada halaman login, dimana halaman tersebut untuk masuk ke akun membernya masing-masing. Apa pun bentuk blog atau juga aplikasi web yang ada member client-Nya, pasti memiliki password yang sudah di hash untuk mengembalikan suatu nilainya kita membutuhkan password_verify(). Password_verify() merupakan fungsi yang sudah datang dari PHP sendiri, jadi fungsinya untuk mengembalikan nilai password yang sudah di hash. Kalau sudah paham masalah ini silakan ikuti langkah demi langkah dibawah ini.

Baca juga: Sistem Login Register Part11 – Mencegah Username Kembar Pada Register

Pemberitahuan: sebelum melanjutkan tutorial yang satu ini, diharapkan untuk mengikuti tutorial sebelumnya pada link diatas. Bukan hanya itu ikuti paling awal tutorial Sistem Login Register ini.

Langka1

Pada saat melakukan login yang perlu kita lakukan ialah ke pahaman tentang login, dimana kebanyakan di antara kita melakukan login dengan mengeluarkan semua query. Lalu disamakan antara username dan password hasil semua query didalam suatu data di database. Akan tetapi diantara kita juga sudah sadar cara cepatnya bagaimana? Lalu apa selanjutnya yang harus dipahami?. Untuk lebih jelas silakan bisa langsung saja lihat kodingnya dibawah ini.

Tunggu dulu! Simpan script dibawah ini di file login.php dibawah baris container (<div class=”container”>).

Kode login.php Cara Biasa
if (isset($_POST['login'])) {
  if (!empty(trim($_POST['username'])) && !empty(trim($_POST['password']))) {
    $user = $_POST['username'];
    $pass = $_POST['password'];
    $query = $conn->prepare("SELECT password FROM user WHERE username = '$user'");
    $query->execute();
    $hash = $query->fetch(PDO::FETCH_OBJ)->password;
    if (password_verify($pass, $hash)) {
      echo "Berhasil login";
    }else {
      echo "Gagal login";
    }
  }else {
    echo "Kolom wajib diisi semua";
  }
}

Silakan untuk mencoba hasilnya sendiri, sebelumnya saya sudah mencoba dan berhasil dengan sempurna yang sama sama kita inginkan.

Ingat! Pada saat Anda mencoba  untuk login pastikan kolom password berisi password yang telah dihash.

Pada pembahasan untuk hasil koding diatas kita tidak banyak-banyak menyampaikan, pada saat kita menggunakan password_verify() parameter pertama yaitu password aslinya dan parameter kedua yaitu password yang dihash yang telah disimpan didalam database. Jadi kita melakukan ini tidak mengeluarkan semua query pada database akan tetapi kita hanya mengeluarkan satu query saja dengan melakukan where username. Pada SELECT password FROM kita hanya mengeluarkan satu kolom query yaitu password-Nya saja. Hal inilah yang saya gunakan dalam pengguan login atau register, bukan hanya itu saja tetapi validasi lain saya juga menerapkannya agar mudah dipahami.

OOPPSSS! Tunggu DULUUU

Pada kasus diatas kita nampaknya terlalu panjang kodingnya? Oke, disini kita akan sedikit mempersingkat kodingnya dengan melakukan beberapa hal yaitu dengan membuat function baru. Silakan lihat langka langka berikut.

Langka1

Silakan lihat kodingnya dibawah ini, simpan fungsi di folder vendor > function > file validation.php

Kode Function select_login()
function select_login($table, $field, $column, $user, $pass)
{
  $query = runSelect("SELECT $field FROM $table WHERE $column = '$user'");
  if (password_verify($pass, fetch_obj($query)->$field)) {
    return true;
  }else {
    return false;
  }
}

Pada koding diatas pasti yang belum ikuti part dari awal hingga saat ini pasti bingung dari mana datangnya function baru yaitu runSelect() dan fetch_obj(). Silakan lihat link dibawah ini yang sudah ada pembahasannya tentang fungsi tersebut dan link utama dari project kita ini.

Baca juga: Sistem login dan Register Dengan PDO

Langka2

Pada file login.php kita akan mengganti semuanya biar enak lihatnya mana yang diganti dan tidak diganti (khusus script php diganti). Silakan untuk di copy simpan di file login.php

Kode login.php
if (isset($_POST['login'])) {
  if (!empty(trim($_POST['username'])) && !empty(trim($_POST['password']))) {
    if (select_login('user', 'password', 'username', $_POST['username'], $_POST['password'])) {
      echo "Berhasil login";
    }else {
      echo "Gagal login";
    }
  }else {
    echo "Kolom wajib diisi semua";
  }
}

Mungkin sudah kelihatan bagaimana bentuknya dan inti dari semuanya sangat sama tergantung mana yang kita suka saja khusus yang satu ini. Semoga tutorial kali ini bermanfaat dan selamat mencoba.

Baca juga: Sistem Login Register Part13 – Menguji Username Yang Belum Terdaftar

Category PHPTags Sistem Login Register


Write a Reply or Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.