Cek Login 2 Tabel Database

Cek Login 2 Tabel Database. Kalau biasanya login pada suatu web atau sistem menggunakan satu tabel sebagai penyimpan username dan passwordnya, tapi kali ini saya sharing bagaimana jika username tersebut berada pada dua tabel dan kedua tabel tersebut merupakan tabeel penting yang susunan feldnya tidak sama antara tabel satu dengan yang lainya.

Kasus ini Saya alami ketika membuat sistem pendukung keputusan yang menggunakan dua level user sistem. Level tersebut yaitu pengguna sistem dan karyawan. Pengguna sistem pada kasus ini bisa disebut dengan admin. Nah di tabel pengguna tau admin terdapat field username dan password begitupula dengan tabel karyawan. Keduanya membuat level tersendiri yaitu pengguna admin levelnya admin, dan karyawan levelnya karyawan namun di tempatkan di tabel yang berbeda.  Untuk itu agar lebih mudah menggunakan form login dan sistem langsung mendeteksi siapa yang login menggunakan sistem berikut ini script php untuk proses itu semua.

Cek Login 2 Tabel Database

Ilustrasi pertama berikut ini form html untuk login menggunakan dua tabel autentikasi:

1. Form Login


<form name="login" action="cek_login.php" method="POST" onSubmit="return validasi(this)">
<table border="1px" style="border-collapse: collapse" cellpadding="3px">
<tr><td>Username : </td><td><input type="text" name="username" size="27"></td></tr>
<tr><td>Password : </td><td><input type="password" name="password" size="27"></td></tr>
<tr><td colspan="2" align="right">
<input type="submit" value="Login">
<input type="reset" value="Reset">
</td></tr>
</table>
</form>

2. cek_login.php


<?php
error_reporting(0);
include "config/koneksi.php";
function antiinjection($data){
 $filter_sql = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
 return $filter_sql;
}

$username = antiinjection($_POST[username]);
$pass = antiinjection($_POST[password]);

$login = mysql_query("SELECT * FROM pengguna WHERE username='$username' AND password='$pass'");
if (mysql_num_rows($login) == 0){
 $login = mysql_query("SELECT * FROM karyawan WHERE username='$username' AND password='$pass'");
}
$ketemu= mysql_num_rows($login);
$r = mysql_fetch_array($login);

// Apabila username dan password ditemukan
if ($ketemu > 0){
 session_start();
 session_register("username");
 session_register("password");
 session_register("nm_pengguna");
 session_register("nm_karyawan");
 session_register("level");

 $_SESSION[username] = $r[username];
 $_SESSION[password] = $r[password];
 $_SESSION[nm_pengguna] = $r[nm_pengguna];
 $_SESSION[nm_karyawan] = $r[nm_karyawan];
 $_SESSION[level] = $r[level];

 header('location: /karyawan/beranda.php');
}
else{
 echo "
 <script>
 alert('Username atau Password Anda tidak berlaku !');
 window.location=\"/karyawan/\";
 </script>
 ";
}
?>

Nah untuk proses yang dimaksud mendeteksi keberadaan username dan password di dua tabel yaitu terdapat pada baris no 12-15 pada script cek_login.php

Penjelasan script diatas adalah apabila query pertama tidak menemukan username dan password pada tabel pertama, maka untuk proses selanjutnya script akan mendeteksi keberadaan username dan password pada tabel kedua dan tetap menyimpannya pada variabel yang sama sehingga dapat digunakan untuk proses selanjutnya.

Tampilan struktur 2 tabel database yang di maksud seperti tampilan berikut ini:

1. Tabel pengguna

 

tabel-pengguna

Tabel Pengguna

2. Tabel Karyawan

tabel-karyawan

Tabel karyawan

Category: Artikel

Tentang: Abdul Rohman Wahid, ST

Programmer yang Bekerja menjadi tenaga ahli IT di Instansi Pemerintah Provinsi Riau. Saya biasanya menulis di blog ini terkait pemrograman. Selain itu Saya juga aktif mengelola web searti.com, aplikasikan.com dan kasitau.com. TLP/WA: 082285417494. Profil Lengkap.

4 thoughts on “Cek Login 2 Tabel Database

  1. adinda intan

    itu kan menggunakan 2 tabel . nah kalo menggunakan 3 tabel gimana ya ? saya masih bingung . please help me 🙂

    Reply
  2. mei

    Makasih admin..Tapi saya mau bertanya. Gimana code untuk membuat user diredirect ke halaman tertentu..Misalnya, setelah diketahui bahwa yang login adalah admin, maka akan diredirect ke halaman admin. terimakasih☺

    Reply
    1. admin Post author

      @mei:

      Untuk membuat halaman yang berbeda dengan masing-masing tipe user dapat kita gunakan level sebagai pembeda mbak. Asumsinya begini, untuk admin kita beri level 1 dan untuk member kita beri level 2 pada field tabel database.

      Oke, jika sudah demikian, kita lakukan cek user login sesuai dengan dia tas, pembedannya kita akan simpan data level ini di session browser. Guna dari session ini adalah untuk me redirect halaman sesuai dengan level nya maka kita bisa contohkan begini:

      $_SESSION['level'] = $row['level'] // session menyimpan level kita data di temukan pada database
      

      Nah untuk membuat redirect dapat kita gunakan if,

      if($_SESSION['level'] == 1){
        // buat menu untuk admin
      }elseif(($_SESSION['level'] == 2){
       // buat menu untuk member
      }
      

      atau kita juga dapat menggunakan switch,

      switch ($_SESSION['level']){
        case '1':
           // menu atau halaman untuk admin
        break;
        case '2':
          //menu atau halaman untuk member
        break;
      }
      

      Demikian mbak semoga membantu.

      Reply

Leave a Reply to adinda intan Cancel reply

Your email address will not be published. Required fields are marked *