Implementasi Level Admin Dengan Session PHP MySQL

Sebuah website yang memiliki multiple admin atau mungkin admin dan user tentunya membutuhkan implementasi pemrograman menggunakan teknik pelevelan. Misalnya dalam suatu aplikasi web terdapat dua jenis admin, diantaranya :

  • Admin utama (akses ke seluruh administrasi situs web)
  • User registrasi (akses ke beberapa fitur situs)

Dari dua jenis admin tersebut, perbedaan mendasar terletak pada previlige (hak akses) terhadap halaman administrasi website. Awal mula saya mencari pemecahan metode pelevelan di internet, namun tidak menemukan cara yang sederhana. Sehingga suatu waktu saya berhasil memecahkan sistem pelevelan secara mudah menggunakan PHP MySQL.

admin leveling php

Download Sources

Disini saya akan mencoba mempraktikan dan menjelaskan secara ringkas metode yang terkadangsaya pakai untuk pembuatan sistem pelevelan website. Berikut adalah langkah-langkahnya :

Persiapan database

Perancangan database yang kita cukup sederhana. Hanya diperlukan satu table bernama “user”. Database bisa anda beri nama apapun, dan menyesuaikan konfigurasi file config.php yang nanti akan kita buat. Misalkan kita disini membuat database bernama “kampus” dan salah satu tabel untuk leveling kita namai “user”. lihat gambar di bawah :

Tabel database kampus

Setelah database “kampus” dan tabel “user” selesai kita buat. Langkah selanjutnya adalah membuat struktur field yang ada di dalam tabel user. Berikut adalah basis struktur field kita :

Struktur tabel field
No Nama field Tipe data
1 Username Varchar(20)
2 Password Varchar(20)
3 Level Varchar

Selanjutnya kita akan mengisi struktur di atas. Misalnya kita mempunyai dua data, dimana satu data adalah super admin dan satu lagi adalah user umum.

Struktur tabel field
No Username Password Level
1 admin 123456 admin
2 agus 123456 user

Dari isian tersebut, perbedaan mendasar antara admin dan agus adalah isian dari field Level. Dimana admin mempunyai inisial level “admin”. Dan user agus memiliki inisial level “user”.

Buat form sederhana

Nah, database beserta struktur dan isian sudah kita buat. Selanjutnya kita akan merancang dan mengimplementasinya dengan membuat form sederhana menggunakan HTML. Berikut adala source code form yang kita buat :

<form method="post" action="login.php" class="form-horizontal">
	<label class="username">Username</label>
	<input type="text" name="username" placeholder="Username Anda">
	<label class="password">Password</label>    	
	<input type="password" name="pass" placeholder="Password">
	<button type="submit" name="submit" class="btn">Login</button>
</form>

Core PHP

Setelah form sederhana selesai Anda buat, selanjutnya kita buat juga file config.php yang berisi konfigurasi database agar terhubung dengan form sistem login yang kita buat. berikut source code-nya :

<?php
	$host="localhost";
	$user="root";
	$password="";	
	$koneksi=mysql_connect($host,$user,$password) or 
	die("Gagal koneksi mas bro..!");
	mysql_select_db("kampus");
?>

And then, selanjutnya kita membuat file login.php yang berisi variabel $_SESSION dan menggunakan fungsi php session_start(), agar data session tersimpan ke browser.

<?php
session_start();
include 'config.php';
$username = $_POST['username'];
$password = $_POST['pass'];
// query untuk mendapatkan record dari username
$query = "SELECT * FROM user WHERE username = '$username'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
// cek kesesuaian password
if ($password == $data['password'])
{
echo "sukses";
    // menyimpan username dan level ke dalam session
    $_SESSION['level'] = $data['level'];
    $_SESSION['username'] = $data['username'];
    header('location: admin.php');
}
else 
echo '<h1>Login gagal</h1>';
?>

Pengkondisian session level admin dan user

Oke, dari source code login.php di atas, kita bisa melihat bahwa header location mengarah ke halaman admin/index.php. Sebenarnya bukan file login.php kita yang menjadi kunci pelevelan ini, tapi pengkondisian utama terletak di halaman admin. Jadi kita akan menerapkan fungsi IF..ELSE dan diletakkan di dalam file admin.php

<?php
// memulai session
session_start();
error_reporting(0);
if (isset($_SESSION['level']))
{
	// jika level admin
	if ($_SESSION['level'] == "admin")
   {   
   }
   // jika kondisi level user maka akan diarahkan ke halaman lain
   else if ($_SESSION['level'] == "user")
   {
       header('location:user.php');
   }
}
if (!isset($_SESSION['level']))
{
	header('location:../index.php');
}
 ?>

Penjelasan source di atas maksudnya:

  • jika session level bernilai “admin”, maka admin tetap berada di halaman admin.php,
  • dan jika kondisi session level bernilai “user”, maka akan diarahkan ke halaman user.php
  • Jadi level user tidak akan bisa mengakses halaman admin.php, karena sudah terkondisikan oleh session dan if..else

Letakkan fungsi php tersebut di bagian atas header file admin.php, sedangkan di header user.php kita bisa mengisikan session yang dikhususkan untuk user. Seperti kode dibawah ini :

error_reporting(0);
session_start();
if (isset($_SESSION['level']))
{

   if ($_SESSION['level'] == "admin")
   {
      include 'konten-admin.php';
   }
   else if ($_SESSION['level'] == "user")
   {
       include 'konten-user.php';
   }
}

Download Sources

 Selamat mencoba !

Muhammad K Huda: A non exhausted blogger person within fullstack engineer (spicy food), open source religion, self-taught driver and maybe you know or don't like it. Simply says, Hello from Me!
Related Post