Membuat Sistem Login PHP Multi Level User (Pengarahan Kustom Setelah Login)

Hak Akses Masing-Masing Akun

1

Pada beberapa kasus mungkin memerlukan pengarahan kustom / custom redirection setelah login di sistem login PHP, contohnya ketika akun dengan peran admin login akan diarahkan ke halaman dasbor sedangkan akun dengan peran /status lain akan diarahkan ke halaman selain dasbor. Hal ini dikenal dengan sebutan Login (System) Multi Level User yang sistem login nya berdasarkan level pengguna.

Sebetulnya tidak hanya berdasarkan level peran pengguna saja tapi juga dapat digunakan berdasarkan hal lainnya yang tersedia di kolom table database bersangkutan misalnya diarahkan berdasarkan Nilai Ujian / Status Perkawinan / berdasarkan hal lainnya, misalnya ketika akun yang login status perkawinannya Single (belum menikah) akan diarahkan ke halaman dasbor dan sebaliknya jika sudah menikah akan diarahkan ke halaman lain.

Sistem Login

ads by posciety

Untuk membuat pengarahan berbeda setelah login tentu harus memiliki sistem loginnya terlebih dahulu, klik disini untuk membuat login sistem & logout di PHP kemudian kembali ke postingan ini untuk melanjutkan. Pada tutorial sistem login & logout tersebut memiliki sistem dengan codingan seperti ini di file login.php nya:

ob_start();
session_start();
if(isset($_SESSION['akun_username'])) header("location: index.php");
include "assets/includes/config.php";

/* PROSES LOGIN */
if(isset($_POST['submit_login'])) {
   $username = $_POST['username'];
   $password = $_POST['password'];
   $sql_login = mysqli_query($koneksi, "SELECT * FROM akun WHERE username = '$username' AND password = '$password'");

   if(mysqli_num_rows($sql_login)>0) {
      $row_akun = mysqli_fetch_array($sql_login);
      $_SESSION['akun_id'] = $row_akun['id'];
      $_SESSION['akun_username'] = $row_akun['username'];
      header("location: index.php");
   }else {
      header("location: login.php?login-gagal");
   }
}

Perhatikan pada bagian $_SESSION[”] baru terdapat 2 session yang dibuat yaitu id dari akun dan username dari akun, kali ini kita perlu menambahkannya tapi harus disiapkan dulu database nya. Pada sistem login ini saya mengambil data dari table database akun yang mana didalamnya memiliki kolom username dan password.

Mengatur Database Untuk Multi Level User

Buka localhost/phpmyadmin di browser seperti biasa untuk menampilkan database kemudian buat table baru dengan nama yang diinginkan misalnya statusakun, didalamnya buatlah kolom (2 kolom saja cukup) untuk id dan nama_statusakun. (lihat gambar)

Contohnya disini membuat peran Admin, Siswa, Dosen dan Belum Aktif, peran ini yang akan dimasukkan kedalam kondisi PHP untuk mengarahkan ke halaman berbeda setelah login.

Selanjutnya pada table akun (karena sistem login disini mengambil data dari table akun) pastikan disediakan kolom untuk berhubungan relationship dengan table statusakun yang baru dibuat ini. (lihat gambar)

Contohnya dengan nama kolom id_statusakun didalam table akun yang mengambil angka / nomor dari id yang ada didalam table statusakun, jika mengambil contoh pada gambar diatas artinya akun pertama memiliki id_statusakun maka akun tersebut berstatus admin.

Belum tau cara membuat table di database ? Mungin artikel ini bisa membantu atau lihat disini cara memasukkan (insert) data ke table database di phpmyadmin.

Sistem Login Multi Level User

Setelah selesai dengan urusan database diatas, kembali lagi ke code editor. Pada sistem login diatas baru membuat 2 session saja, silahkan tambahkan session baru untuk mengambil data statusakun pengguna login. Tambahkan $_SESSION["akun_statusakun"] = $row_akun["id_statusakun"];dibawah session username maka akan menjadi seperti ini:

ob_start();
session_start();
if(isset($_SESSION['akun_username'])) header("location: index.php");
include "assets/includes/config.php";

if(isset($_POST['submit_login'])) {
   $username = $_POST['username'];
   $password = $_POST['password'];
   $sql_login = mysqli_query($koneksi, "SELECT * FROM akun WHERE username = '$username' AND password = '$password'");

   if(mysqli_num_rows($sql_login)>0) {
      $row_akun = mysqli_fetch_array($sql_login);
      $_SESSION['akun_id'] = $row_akun['id'];
      $_SESSION['akun_username'] = $row_akun['username'];
        $_SESSION["akun_statusakun"] = $row_akun["id_statusakun"];
      header("location: index.php");
   }else {
      header("location: login.php?login-gagal");
   }
}

Terdapat session baru dibawah $_SESSION[‘akun_username’] yaitu session untuk statusakun, artinya kita mengambil data statusakun pengguna login tersebut dengan membuat session statusakun.

Selanjutnya tinggal tambahkan kondisi / condition if & else pada location untuk membuat arahan yang berbeda sesuai keperluan, maka code sistem pada file login.php tersebut akan menjadi seperti ini:

if(isset($_POST["submit_login"])) {
    $username   = $_POST["username"];
    $password   = $_POST["password"];
    $sql_login  = mysqli_query($koneksi, "SELECT * FROM akun WHERE username = '$username' AND password = '$password'");

    if(mysqli_num_rows($sql_login)>0) {
        $row_akun = mysqli_fetch_array($sql_login);
        $_SESSION["akun_id"] = $row_akun["id"];
        $_SESSION["akun_username"] = $row_akun["username"];
        $_SESSION["akun_statusakun"] = $row_akun["id_statusakun"];

        if($_SESSION["akun_statusakun"] == "1") {
            header("location:index.php");
        }else {
            header("location:index.php?profil");
        }
    }else {
        header("location:login.php?gagal");
    }
}

Perhatikan kondisi if else dibawah session yang baru dibuat tadi, kondisi ini menyatakan jika akun login tersebut berstatus 1 (1 adalah admin, seperti yang ditentukan di table database statusakun dan di kolom id_statusakun tadi) akan diarahkan ke index.php dan jika bukan / tidak berstatus 1 (admin) maka akan diarahkan ke index.php?profil.

Pelajari selengkapnya tentang kondisi if else disini.

Silahkan tentukan halaman arahan untuk admin dan selain admin di bagian location nya, selain itu kalianpun tidak hanya dapat menentukan dari akun admin saja misalnya halaman admin dan dosen sama tapi halaman siswa berbeda maka pada kondisi if == “2”.

Selamat! Sekarang sudah berhasil membuat sistem login multi user, mengarahkan pengguna ke halaman berbeda setelah login sesuai kondisi yang ditentukan.

Masih bingung ? Lihat : Video tutorial cara membuat multi level user PHP Sistem.

Biasanya, sistem multi level seperti ini akan menampilkan data yang berbeda juga misalnya ketika admin login akan ditampilkan semua menu yang tersedia sedangkan ketika siswa login hanya menampilkan beberapa menu saja dan menyembunyikan menu yang tidak perlu. Cara itu bisa kalian dapatkan disini.

Tutorial ini menggunakan MySQLi Statement, harap maklum jika terdapat perbedaan cara mungkin disebabkan oleh perbedaan statement yang digunakan. Disarankan untuk mengkuti tutorial pembuatan login dan logout saya sebelumnya supaya sesuai sistemnya dengan yang disampaikan diatas.

Sekali lagi, multi level user ini tidak hanya dapat digunakan berdasarkan peran pengguna saja tapi dapat digunakan dengan nilai lain juga.

Selamat mencoba !

Artikel Lainnya
Lihat Komentar (1)

Website ini menggunakan cookie untuk pengalaman yang lebih baik Setuju & Tutup Selengkapnya