Belajar Web Programming PHP, HTML, MySQL dan Tutorial

Membuat Hak Akses User Menggunakan Level Dengan PHP dan MySQL

Pada tutorial kali ini kita mengembangkan sourcecode program sebelumnya yaitu mengenai login sederhana menggunakan session pada PHP. Pada source login sederhana tersebut telah cukup memadai untuk dilanjutkan ke tahapan berikutnya yaitu hak akses user yang login. Bagi yang belum mengetahui tutorial login sederhana dapat mengaksesnya melalui link berikut:

Login Sederhana Menggunakan PHP Session


Pada dasarnya dalam artikel tersebut kita telah menggunakan session sebagai variabel yang digunakan untuk mengetahui apakah user tersebut telah login atau belum. Dengan demikian kita tinggal menambahkan variabel lain berupa level dimana value dari level diperoleh dari field level yang ada pada tabel user pada basis data yang kita gunakan. Mari kita mulai tutorialnya, step awal dimulai dari file-file yang dibutuhkan secara berurutan.

Tabel user pada database.

gambar struktur tabel user

gambar isi data user

Kode Program PHP

koneksi.php
<?php 
$host = "localhost";
$user = "root";
$pass = "";
$db   = "db_web";

$koneksi = mysqli_connect($host,$user,$pass,$db);
?>
Silahkan setting konfigurasi database sesuai dengan config server anda.

login.php
<!DOCTYPE html>
<html>
<head>
 <title>Aplikasi Login Sederhana</title>
 <style>
 body { font-family: verdana; font-size: 12px; }
 a { text-decoration: none; color: blue; }
 a:hover { color: green; }
 </style>
</head>
<body>
<h1 align="center">Aplikasi Login Sederhana : PHP Session</h1>
<hr>
<form action="login-proses.php" method="post">
<table width="300" border="0" align="center">
<tr>
 <td width="150">Username</td>
 <td>
  <input type="text" name="username" required>
 </td>
</tr>
<tr>
 <td width="150">Password</td>
 <td>
  <input type="password" name="password" required>
 </td>
</tr>
<tr>
 <td width="150"></td>
 <td>
  <input type="submit" value="login" required>
 </td>
</tr>
</table>
</form>
</body>
</html>

User dapat melakukan login dengan 2 akses yang pertama admin dan yang kedua adalah staff, username dan password dapat dilihat pada gambar tabel user

login-proses.php
<?php 
session_start();
include "koneksi.php";

$username = $_POST['username'];
$password = $_POST['password'];

//cek data
$sql = "SELECT * FROM user WHERE username='$username' ";
$qry = mysqli_query($koneksi,$sql);
$usr = mysqli_fetch_array($qry);

if( 
 md5($username) == md5($usr['username'])
 AND
 md5($password) == md5($usr['password'])
  )
{
 $_SESSION['iduser']   = $usr['iduser'];
 $_SESSION['username'] = $usr['username'];
 $_SESSION['nama']     = $usr['nama'];
 $_SESSION['level']    = $usr['level']
 $_SESSION['login']    = 1;
 $pesan = "Login berhasil, selamat datan $username";
} else {
 $pesan = "Login gagal, username atau password anda salah!";
}

?>
<script>
 alert('<?php echo $pesan;?>');
 location='index.php';
</script>

Perbedaan dengan login pada artikel adalah dengan menambahkan variabel $_SESSION['level'] yang digunakan nantinya pada percabangan di file index.php. level ini menjadi penentu menu-menu yang akan ditampilkan sesuai hak akses user tersebut.

index.php
<?php
session_start();
$login = $_SESSION['login'];
if($login == 1)
{
include "koneksi.php";
?>
<!DOCTYPE html>
<html>
<head>
 <title>Aplikasi Login Sederhana</title>
 <style>
 body { font-family: verdana; font-size: 12px; }
 a { text-decoration: none; color: blue; }
 a:hover { color: green; }
 </style>
</head>
<body>
<h1 align="center">Aplikasi Login Dengan Level Akses</h1>
<hr>
<?php 
$level = $_SESSION['level'];
if($level == 1) { include "menu_admin.php"; }
if($level == 2) { include "menu_staff.php"; }
?>
<hr>
<?php 
$nama     = $_SESSION['nama'];
$username = $_SESSION['username'];

echo "Selamat Datang $nama ($username) ";
?>
<hr>
</body>
</html>
<?php
}
else {
 include "login.php";
} 
?>

Pada halaman index.php ini terdapat perkembangan kode yaitu menambahkan kondisi percabangan hak akses user. dimana jika level == 1 maka menu admin akan ditampilkan sedangkan jika level == 2 maka menu staff yang akan ditampilkan.

menu_admin.php
<a href="index.php">Beranda</a> | 
<a href="index.php?menu=user">Data User</a> | 
<a href="index.php?menu=rekapitulasi">Data Rekapitulasi</a> | 
<a href="logout.php">Logout</a> | 

menu_staff.php
<a href="index.php">Beranda</a> | 
<a href="index.php?menu=absensi">Data Absensi</a> | 
<a href="logout.php">Logout</a> | 

logout.php
<?php 
session_start();
session_destroy();
?>
<script>
 alert('Logout berhasil');
 location='index.php';
</script>

Dengan sourcecode diatas maka kita telah dapat membuat sebuah login sederhana dengan hak akses yang berbeda melalui satu halaman form login yang sama. Selamat mengerjakannya ya

Hasil Program

Form Login

Hasil Login Admin

Hasil Login Staff

Labels: Aplikasi Web, login, PHP

Terima kasih telah membaca Membuat Hak Akses User Menggunakan Level Dengan PHP dan MySQL. Bila bermanfaat boleh di share yah :)

1 Comment for "Membuat Hak Akses User Menggunakan Level Dengan PHP dan MySQL"


Notice: Undefined index: login in C:\xampp\htdocs\apotek\index.php on line 4

kalo gini kenapa ya kak?

Back To Top