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
2. Tabel Karyawan
sundul gan.. mantab
itu kan menggunakan 2 tabel . nah kalo menggunakan 3 tabel gimana ya ? saya masih bingung . please help me 🙂
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☺
@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:
Nah untuk membuat redirect dapat kita gunakan if,
atau kita juga dapat menggunakan switch,
Demikian mbak semoga membantu.