Membuat Fitur Multi User PHP

Setiap aplikasi web pasti memiliki peran dan izin pengguna untuk mengakses ke halaman tertentu. Jadi tidak mungkin semua pengguna bisa masuk ke halaman yang semestinya tidak bisa dilakukan oleh beberapa pengguna secara umum. Pada tutorial ini saya memberikan dua peran saja yaitu admin dan member, tetapi Anda juga bisa menggunakan peran lain seperti editor, constributir, premium, atau lainnya.

Daftar isi:

Baca juga:

Menambahkan skrip di login.php

Pada tutorial fitur login saya tidak menambahkan role, karena tidak digunakan kecuali pada tutorial kali ini. Saya menggunakan session untuk menyimpan peran baik admin atau member tergantung role yang dimiliki pengguna. Silakan salin skrip dibawah ini ke berkas login.php yang bisa Anda sesuaikan.

$sql = "SELECT username, password, role FROM users WHERE username = '$username'";
...
$_SESSION['user_role'] = $user->role;

Agar lebih jelasnya lihat gambar dibawah ini:

gambar 1

Menambahkan skrip di theNavbar.php

Saya menambahkan menu untuk halaman admin dan member sebagai contoh dasar yang perlu di ketahui. Jadi, jika pengguna memiliki peran admin maka tidak akan bisa masuk ke halaman member atau sebaliknya dengan peran member. Silakan masuk skrip dibawah ini di berkas theNavbar.php.

<?php if ($_SESSION['user_role'] == 'admin') : ?>
    <a class="navbar-item is-tab" href="admin.php">Halaman Admin</a>
<?php else : ?>
    <a class="navbar-item is-tab" href="member.php">Halaman Member</a>
<?php endif; ?>

Agar lebih jelasnya lihat gambar dibawah ini:

gambar 2

Menambahkan skrip admin.php dan member.php

Salin semua skrip dibawah ini ke berkas admin.php dan member.php.

Skrip admin.php

<!DOCTYPE html>
<html lang="id">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Halaman Admin</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css">
</head>

<body>
    <?php require 'theNavbar.php' ?>

    <?php
        if (!isset($_SESSION['user_login'])) {
            header('Location:login.php');
        }

        if ($_SESSION['user_role'] != 'admin') {
            header('Location:index.php');
        }
    ?>

    <h1 class="title has-text-centered">Halaman Admin</h1>

    <?php require 'theFooter.php' ?>
</body>

</html>

Skrip member.php

<!DOCTYPE html>
<html lang="id">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Halaman Member</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css">
</head>

<body>
    <?php require 'theNavbar.php' ?>

    <?php
        if (!isset($_SESSION['user_login'])) {
            header('Location:login.php');
        }

        if ($_SESSION['user_role'] != 'member') {
            header('Location:index.php');
        }
    ?>

    <h1 class="title has-text-centered">Halaman member</h1>

    <?php require 'theFooter.php' ?>
</body>

</html>

Penjelasan: $_SESSION['user_role'] != 'admin' jika peran tidak sama dengan Admin maka akan mengembalikan nilai true, maka akan diarahkan ke halaman utama. Sedangkan $_SESSION['user_role'] != 'member' sama cara kerjanya dengan penjelasan saya sebelumnya.

Selamat Anda telah selesai mengikuti tutorial diatas, silakan Anda mencoba dengan masuk sebagai peran admin atau member. Ini adalah tutorial terakhir bagi Anda yang telah berhasil Anda ikuti, terimakasih telah mengikuti tutorial ini.