Sistem Login Register Part8 – Cara Membuat Register User

Febri Hidayan Komentar

Sistem Login Register Part8 – Cara Membuat Register User

Sebelumnya kita sudah membahas cara koneksi ke database dengan PDO, sekarang yang kita tunggu ialah register usernya. Hal ini kita akan menyimpan data didalam database, mari kita lihat deksripsi lengkapnya dibawah ini.

Cara Membuat Register User

Pada saat meregister ada beberapa tahap yaitu kita akan membuat validasi yang agak rumit dengan menginput datanya berbentuk array. Kita belajar menggunakan implode, array_keys, foreach, dan beberapa lainnya. Sedangkan didalam validasi submit kita menggunakan isset, empty, trim, dan array. Mungkin terlalu bingung kalau kita tidak melihatnya secara langsung kodenya dan penggunaannya. Yang terpenting jangan pernah takut error dan apapun yang error pasti ada masalahnya untuk memecahkan masalahnya. Oke! Lihat urutan langka dibawah ini.

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

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

Pada kesempatan kali ini membuat suatu validasi cara menyimpan datanya dalam bentuk array. Jadi kita hanya membuat script satu kali saja, kebanyakan kita membuatnya berkali kali dalam kode yang sama. Sebagai seorang developer kita harus tahu cara menyederhanakan suatu kode yang bermanfaat bisa digunakan beberapa sumber lainnya. Kalau seperti itu kita bisa copy kode dibawah ini dan lihat deskripsinya dibagian bawah.

Kode Insert Functions
<?php
function insert($table, $fields)
{
  $colomns = implode(', ', array_keys($fields));
  $arrayValues = [];
  $a = 1;
  foreach ($fields as $key => $value) {
    if (is_int($value)) {
      $arrayValues[$a] = $value;
    } else {
      $arrayValues[$a] = "'".$value."'";
    }
    $a++;
  }
  $values = implode(', ', $arrayValues);
  return runQuery("INSERT INTO $table($colomns) VALUES($values)");
}
function runQuery($query)
{
  global $conn;
  $query = $conn->prepare($query);
  if ($query->execute()) return true;
    else return false;
}
?> 

Setelah di copy bisa langsung di paste di folder vendor > Database > file database.php. kali ini kita memanfaatkan fungsi sebagai libary kodenya, silakan simak deskripsi dibawah ini.

  • Funct insert() pada fungsi ini ada beberapa parameter yang harus di isi yaitu param pertama berisi nama table database, kedua nama nilai yang sudah berbentuk array dan juga data usernya yang akan diproses pada fungsi ini.
  • Implode dimana kegunaan implode ini yaitu memberikan jarak yang kita inginkan pada setiap karakter. Baik itu jaraknya koma(,) titik dua(:) atau lainnya. Jadi implode ini memiliki dua parameter pertama jarak yang akan diberi, kedua nilai yang akan diberikan jarak.
  • Array_keys kegunaan dari array_keys ialah untuk mengambil kata kunci atau yang disebut juga keys dari array misalnya arraynya [‘nama’ => ‘melinda’]. Maka akan menampilkan kata kunci nama.
  • Foreach digunakan untuk mengambil nilai pada array jadi sudah ada fungsi khusus yang disedikan oleh php untuk mengambil nilai array dengan foreach.
  • Is_int singkatnya yaitu untuk menebak suatu nilai karakter atau integer. Jadi kalau nilainya integer maka hasilnya true;
  • $column untuk nama kolom yang ada ditable.
  • $values untuk memberikan nilai pada kolom yang sudah diterapkan.

Pada if dan else di dalam foreach digunakan untuk memproses nilai dari arraynya, jika nilai itu berupa integer maka akan masuk dibaris $arrayValues[$a] = $value; kalau nilainya karakter maka akan masuk di baris $arrayValues[$a] = “‘”.$value.”‘”;.

  • Func runQuery digunakan untuk proses penyimpanan datanya yang terdiri satu parameter yang diterima sesuai fungsi ini digunakan.
  • Global digunakan untuk mengambil variabel koneksi database diluar fungsi, jadi apapun variabelnya kalau kita tidak mengasi tahu fungsinya maka tidak akan terbaca nama variabelnya.
  • Prepare dan execute merupakan cara untuk melakukan proses penyimpanan datanya. Untuk mencega SQL Injection perintah prepare sudah bisa mencega terjadi SQL Injection.

Langkah 2

Setelah selesai mengetahui penjelasannya dan maksud dari penggunaan fungsi diatas. Lalu buka file _autoload.php kemudian tambahkan baris memanggil file database.php seperti biasanya kita memanggilnya yaitu seperti kode di bawah ini.

Kode _autoload.php
// memanggil file database.php di folder Database
require_once 'Database/database.php';

langka 3

pada langka ini kita akan masuk ke file register.php dimana kita akan mengirim datanya ke fungsi insert(). Jadi kita bisa memasukan data dengan satu fungsi itu saja, dilakan copy kode dibawah ini.

Kode Register.php
<?php
    if (isset($_POST['register'])) {
      if (!empty(trim($_POST['nama'])) && !empty(trim($_POST['username'])) && !empty(trim($_POST['password']))) {
        $array = [
          'nama' => $_POST['nama'],
          'username' => $_POST['username'],
          'password' => $_POST['password'],
          'role' => 2,
          'token' => 'TOKEN12ks'
        ];
        if (insert('user', $array)) {
          echo "berhasil register";
        } else {
          echo "gagal register";
        }
      }else {
        echo "kolom tidak boleh kosong";
      }
    }
  ?>

Pastekan dibawah class container selanjutnya bisa langsung lihat apa maksud kode yang diatas.

  • Isset digunakan untuk menguji tombol $_POST[‘register’] sudah ditekan atau belum, apabila tidak menggunakan isset maka yang akan terjadi adalah Undefined index: register. Dimana artinya tidak diketahui index dari registernya.
  • Empty mungkin sudah tahu artinya yaitu kosong, dimana untuk menguji nilainya kosong atau tidak kalau kosong maka nilai true. Kalau berisi maka nilainya false, akan tetapi kita menggunakan tanda seru !empty maka kebalikannya. Apapun yang dikasih tanda seri maka akan menjadi kebalikan sama halnya kalau kita menggunakan !isset maka kebalikannya juga.
  • Trim digunakan untuk memvalidasi terjadi onespace pada awal karakter dan akhir karakter misalnya username saya ‘febrihidayan ‘ dibagian akhir ada jarak. Maka trim akan menghilangkan jarak tersebut.
  • $array variabel ini digunakan untuk menyimpan data yang berbentuk array jadi isi keys itu nama kolom table dan values isi dari input data yang kita masukan.

Khusus kolom role dan token kita masukan secara menual dimana kita akan membahasnya di tutorial berikutnya karena artikel ini sudah terlalu panjang.

Langka 4

Langka terakhir kita akan mengujinya dengan meregister usernya sesuai keinginan kita. Apabila berhasil maka akan tampil seperti dibawah ini.

Mungkin itu yang bisa saya bahas tentang cara membuat register user-Nya, sangat terlalu panjang untuk validasi datanya. Akan tetapi kegunaan yang kita buat kali sangat bermanfaat dilain waktu. Apabila ada kekurangan perkataan, lebih dan kurang saya mohon maaf. Semoga bermanfaat dan sampai jumpa di tutorial selanjutnya.

Baca juga: Sistem Login Register Part9 – Membuat Password Hash Pada Register

Category PHPTags Sistem Login Register


Mari Tinggalkan Komentar

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