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
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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';
}
}
|
Selamat mencoba !
No comments
# Terima Kasih Telah Berkunjung Semoga Artikel Yang Kamu Baca Bermanfaat :)