Dalam
suatu aplikasi bisa jadi terdapat lebih dari satu user dan dengan
level yang berbeda-beda. Dengan adanya pembagian level tersebut
diharapkan adanya hak akses yang berbeda. Untuk memudahkan Anda dalam
membayangkan hal ini, misalkan terdapat 5 user katakanlah A, B, C, D dan
E dimana user A, B dan C adalah level ‘administrator’, sedangkan D dan
E user biasa. Nah… user A, B, dan C ini misalkan berhak mengakses
halaman 1, 2 dan 3 dari aplikasi sedangkan D dan E hanya boleh
mengakses halaman 3 saja. Dengan kata lain hak akses ke halaman-halaman
tersebut ditentukan oleh level usernya.
Pemberian hak
akses pada masing-masing user ini bisa dalam bentuk link menu. Ketika
seorang user telah melakukan login, dan loginnya sukses maka akan
muncul menu link ke halaman-halaman yang boleh diaksesnya. Sebagai
gambaran misalnya pada contoh di atas, setelah user A login dan
loginnya berhasil maka akan muncul menu link menuju ke halaman 1, 2 dan
3 karena si A ini levelnya Administrator. Namun untuk si D, karena
levelnya user biasa, maka hanya akan muncul menu link menuju halaman 3
saja.
Langsung saja kita menuju tutorialnya, misalkan kita punya data user sebagaimana tersaji dalam tabel berikut ini
lalu masukkan data-datanyaCREATETABLEuser(usernamevarchar(20),passwordvarchar(20),levelvarchar(20),PRIMARYKEY(username));
INSERTINTO`user`VALUES('a','pass1','admin');INSERTINTO`user`VALUES('b','pass2','admin');INSERTINTO`user`VALUES('c','pass3','user');INSERTINTO`user`VALUES('d','pass4','user');INSERTINTO`user`VALUES('e','pass5','user');
selanjutnya kita buat form loginnya.
login.htm
<formmethod="post"action="loginsubmit.php"><tableborder="0"><tr><td>Masukkan Username </td><td><inputname="username"type="text"></td></tr><tr><td>Masukkan Password </td><td><inputname="pass"type="password"></td></tr><tr><td> </td><td><inputtype="submit"name="Submit"value="Submit"></td></tr></table></form>
Form login sudah dibuat, berikutnya kita buat script untuk memproses loginnya.
loginsubmit.php
<?php
// memulai session
session_start();
mysql_connect('dbhost', 'dbuser', 'dbpass');
mysql_select_db('dbname');
$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 "<h1>Login Sukses</h1>";
// menyimpan username dan level ke dalam session
$_SESSION['level'] = $data['level'];
$_SESSION['username'] = $data['username'];
// tampilkan menu
include "menu.php";
}
else echo "<h1>Login gagal</h1>";
?>
Bila
Anda perhatikan pada script di atas, maka terlihat bahwa menunya
membaca script menu.php. Di dalam script menu.php sendiri nantinya
terdapat pengecekan level usernya yang tadi tersimpan dalam session
sewaktu login sukses. Bila level usernya adalah ‘admin’ maka tampilkan
menu link menuju halaman 1, 2, dan 3. Begitu pula untuk level ‘user’.
menu.php
<?php
session_start();
if ($_SESSION['level'] == "admin")
{
// tampilkan menu untuk admin
echo "<a href='hal1.php'>Halaman 1</a> ";
echo "<a href='hal2.php'>Halaman 2</a> ";
echo "<a href='hal3.php'>Halaman 3</a> ";
echo "<a href='logout.php'>Logout</a> ";
}
else if ($_SESSION['level'] == "user")
{
// tampilkan menu untuk user biasa
echo "<a href='hal3.php'>Halaman 3</a>";
echo "<a href='logout.php'>Logout</a> ";
}
?>
Selanjutnya, kita
bisa mulai membuat konten pada halaman 1, 2 dan 3. Ingat.. sebelum
menampilkan kontennya sebaiknya dicek level usernya terlebih dahulu.
Bila levelnya tidak sesuai dengan hak aksesnya, maka jangan ragu untuk
menolak. Untuk halaman 1, dari kasus yang kita ambil hanya bisa
diakses oleh user berlevel ‘admin’ saja. Begitu pula untuk halaman 2.
Namun untuk halaman 3, baik level ‘admin’ maupun ‘user’ biasa boleh
mengaksesnya.
hal1.php
<?phpsession_start();// cek apakah user yang mengakses halaman ini sudah melalui login atau belum// logikanya jika user telah login dan sukses, maka SESSION level dan SESSION username ini pasti sudah ada// jika ada user yang mencoba akses halaman ini tanpa login, maka logikanya kedua SESSION belum adaif(isset($_SESSION['level']) && isset($_SESSION['username'])){// tampilkan menu.// menu hanya ditampilkan bila halaman ini diakses oleh user yang telah logininclude"menu.php";// cek level user apakah admin atau bukanif($_SESSION['level'] =="admin"){// tampilkan konten halaman 1 jika levelnya adminecho"<h1>Halaman 1</h1>";echo"<p>Selamat datang di halaman satu wahai user : ".$_SESSION['username']."</p>";echo"<p>Ini adalah konten halaman 1</p>";}else{// jika levelnya bukan admin, tampilkan pesanecho"<h1>Maaf.. Anda bukan user berlevel Administrator</h1>";}}else{echo"<h1>Nah.. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>";}?>
Untuk halaman 2,
konsepnya juga sama seperti script halaman 1 di atas, hanya yang berbeda
pada kontennya tentu saja. Sekarang untuk halaman ke-3 di mana yang
bisa mengakses adalah semua level user, scriptnya adalah:
hal3.php
<?phpsession_start();if(isset($_SESSION['level']) && isset($_SESSION['username'])){include"menu.php";if(($_SESSION['level'] =="admin") || ($_SESSION['level'] =="user")){echo"<h1>Halaman 3</h1>";echo"<p>Selamat datang di halaman tiga wahai user : ".$_SESSION['username']."</p>";echo"<p>Ini adalah konten halaman 3</p>";}}else{echo"<h1>Nah.. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>";}?>
Pada prinsipnya proses logout adalah menghapus semua session yang tadi terbentuk ketika login sukses.
logout.php
Anda bisa download scripnya disini<?phpsession_start();session_destroy();echo"<h1>Anda sudah logout</h1>";echo"<p><a href='formlogin.htm'>Login Kembali</a></p>";?>
Sumber : seven cyber


Tidak ada komentar:
Posting Komentar