M K H U D A B L O G
admin leveling php

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
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 :

1Persiapan 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
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”.

2Buat 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>

3Core 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>';
?>

4Pengkondisian 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 !

12 Comments

  • rojhieb

    July 26, 2013

    numpang nanya kegunaan dari “placeholder” sebenarnya apa? dan sekalian untuk passwordnya kalo di kasih fungsi md5 bisa tidak?
    trima kasih

    Reply
    • Muhammad K Huda

      August 2, 2013

      bisa kok diberi md5, tergantung eksperimen dan pengembangan mas rojhieb sendiri. hehe
      placeholder hanya alat bantu saja, boleh dihilangkan jika memang ada beberapa problem tertentu.. 🙂

      Reply
  • Anonymous

    December 28, 2013

    mas tolong upload’in sqlnya dong
    dan tolong bua’in cek.phpnya dong misalnya kalo user belum login akan direcedit otomatis ke login.php

    Reply
  • Ody HiRui NaKi

    January 7, 2014

    username sama passwordnya apa ?

    Reply
    • Muhammad K Huda

      January 8, 2014

      username + password coba lihat di database usernya ada , mas !

      Reply
  • PHP Admin Leveling dan Login Menggunakan MD5 | Mkhuda Blog

    January 20, 2014

    […] beberapa bulan yang lalu, saya telah menjelaskan dan memberikan sedikit contoh mengenai implementasi level admin menggunakan session pada web berbasis PHP. Percobaan sederhana tersebut masih memiliki banyak kelemahan terutama pada fungsi header dan juga […]

    Reply
  • nina

    March 9, 2014

    Mas kalau script login untuk user gimana yah,, contohnya: data siswa, siswanya ada 1000 siswa, setiap siswa harus punya hak akses data mereka sendiri, yang saya mau tanya bagaimana buat script agar setiap siswa punyak hak akses masing-masing, dan siswa lain tidak bisa mengaksesnya kecuali yang siswa yang punya data itu sendiri, terimKASIH, pa mohon bantuannya,,,,

    Reply
  • filah

    May 10, 2014

    mas, maaf saya mau tanya. saya sudah coba source codex, tp pass login hanya halaman admin saja yg muncul. sdgkn untuk user tidak muncul tampilanx. tp tidak ada pesan error. itu dimana yg salah??? terima kasih

    Reply
  • Azr27

    June 25, 2015

    Thanks gan, berguna banget 🙂

    Reply
  • Hasan

    February 1, 2016

    Jika dari database tabel untuk megetahui admin atau usernya berbeda bagaimana caranya mas???

    Reply
    • Muhammad K Huda

      March 26, 2016

      bisa ditambah field baru untuk role yang hanya bisa diisi dengan admin atau user

      Reply

Leave A Reply To Anonymous

This site uses Akismet to reduce spam. Learn how your comment data is processed.