Sistem Login Register Part11 – Mencegah Username Kembar Pada Register

Febri Hidayan Komentar

Sistem Login Register Part11 – Mencegah Username Kembar Pada Register

Sebelumnya kita sudah belajar membuat hash token user, selanjutnya yang kita bahas ialah mencegah username kembar. Hal ini sangat penting buat kita dalam pengembangan suatu website yang tujuannya memiliki member didalamnya, lihat penjelasannya dibawah ini.

Mencegah Username Kembar Pada Register

Dalam pembuatan register member pada suatu website kita harus mencegah nama kembar pada website kita, bukan hanya website tapi juga aplikasi web yang memiliki beberapa anggota kerja didalamnya. Ada beberapa kemungkinan dalam pembuatan aplikasi web buat kantoran atau sekolah, biasanya kalau buat sekolah itu berupa aplikasi ujian dimana username dan passwordnya bukan lagi karakter yang mudah diingat. Melainkan karakter random yang sudah di hash. Kalau aplikasi kantoran hampir sama dengan website dalam masalah username atau email yang digunakan, dan pastinya hal ini hanya bisa diketahui oleh pemilikinya sendiri dan administrator suatu aplikasi. Kalau sudah tahu hal ini kita bisa ikuti langkah dibawah ini.

Baca juga: Sistem Login Register Part10 – Membuat Hash Token User 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.

Langka 1

Hal pertama yang kita lakukan ialah membuat validasi buat username-Nya, pasti cara yang kita lakukan ialah mengeluarkan semua query username-Nya lalu disamakan dengan username yang akan diregister. Kali ini kita tidak melakukan hal itu karena sangat merepotkan, kita akan membuat function baru bernama select_name_key dimana yang kita uji ialah username dan key-Nya juga username. Untuk itu silakan lihat kodenya dibawah ini.

Kode File Validation.php
function select_name_key($table, $column, $key)
{
  $query = runSelect("SELECT $column FROM $table WHERE $column = '$key'");
  if (fetch_obj($query)) {
    return true;
  }else {
    return false;
  }
}

Info: Setelah di Copy kode diatas di simpan pada folder vendor > function > file validation.php lalu tambah ke barisan bawahnya.

Pada function select_name_key() ada tiga parameter yang pertama nama table database, kedua nama kolom table, ketiga yaitu kata kunci atau key pada nama kolom yang akan kita uji setiap baris dalam satu kolom. Ada dua function yang belum kita buat yaitu runSelect() dan fetch_obj().

Baca juga: Sistem Login Register Part7 – Koneksi Ke Database Dengan PDO

Langka 2

Pada langka ini kita akan membuat function, dimana function digunakan untuk menjalankan hasil data query dalam database kita. Kurang lebih hasil functionnya dibawah ini dan langsung di copy saja.

Kode FIle Database.php
function runSelect($query)
{
  global $conn;
  $query = $conn->prepare($query);
  $query->execute();
  return $query;
}

function fetch_obj($result)
{
  return $result->fetch(PDO::FETCH_OBJ);
}

Info: simpan di folder vendor > database > file database.php tambahkan dibaris bawah pada kode sebelumnya.

Sedikit penjelasan pada function diatas ialah untuk menjalakan perintah query untuk function runQuery() dan fetch(PDO::FETCH_OBJ) dimana kita akan mengeluarkan query dengan secara object. Bisanya kita ingin mengeluarkan didalam table maka kita buat seperti ini $row[‘username’]; tapi kalau menggunakan object kita bisa $row->username;. Dimana sesuai keinginan masing masing dan biasanya saya menggunakan secara object.

Baca juga: Sistem login dan Register Dengan PDO

Langka 3

Langka terakhir kita akan menambah kode di bagian file register.php seperti dibawah ini dan copy saja kasih kodingnya.

Kode File Register.php
if (select_name_key('user', 'username', $_POST['username']) == 0) {
  // $array = [
  //   'nama' => $_POST['nama'],
  //   'username' => $_POST['username'],
  //   'password' => password_hash($_POST['password'], PASSWORD_DEFAULT),
  //   'role' => 2,
  //   'token' => token(32)
  // ];
  // if (insert('user', $array)) {
  //   echo "berhasil register";
  // } else {
  //   echo "gagal register";
  // }
} else {
  echo "Username sudah terdaftar.";
}

Info: simpan kodenya di file register.php didalam baris if kedua dan tanda komentar diatas merupakan kode sebelumnya yang kita buat.

Baca juga: Sistem Login Register Part8 – Cara Membuat Register User

Penjelasan buat kode diatas ialah penggunaan == 0 maksudnya ialah apabila usernamenya tidak ada maka nilainya akan true dan apabila nilainya 1 maka terjadi false. Setelah itu silakan coba kembali dengan username yang ada sebelumnya dan yang tidak ada. Maka akan terjadi validasi terhadap username sudah terdaftar apabila username telah ada sebelumnya.

Semoga tutorial kita kali ini sangat bermanfaat, lebih dan kurang saya mohon maaf. Selamat belajar dan mengulang tutorial ini agar bisa mengingatnya dengan mudah dan sampai jumpa di tutorial selanjutnya.

Baca juga: Sistem Login Register Part12 – Login User dan Menggunakan Password Verify

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.