Membuat Login PHP dengan Hak Akses Berbeda
Saat ini banyak CMS atau juga situs-situs komunitas memiliki multi user,
yang mempunyai tingkatan level yang berbeda-beda juga. Misalnya ada level
admin, ada level user, yang mempunyai hak akses yang berbeda-beda.
Konsep untuk membuat login multi user adalah :
1.
Buat tabel user di database yang menyimpan data level masing-masing user
2.
Ketika login kita simpan level user yang login ke dalam variabel $_SESSION
3.
Ketika user masuk ke suatu halaman, cek apakah user sudah login dan cek
level user tersebut
Sekarang mari kita lihat contoh tabel user di database dan kode PHP-nya.
Misal kita punya banyak halaman, di mana halaman-halaman tersebut mempunyai hak
akses yang berbeda-beda. Contoh halaman-halaman web yang kita punya :
Berikut adalah struktur tabeluser di
database :
– Table structure for table `tabeluser`
CREATE TABLE `tabeluser` (
`userid` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
`level` varchar(15) NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Pertama-tama mari kita buat halaman untuk login.
index.php
<html>
<head><title>Login</title></head>
<body>
<h2>Halaman Login</h2>
<form action=”log.php?op=in”
method=”post”>
User ID : <input type=”text”
name=”userid”><br>
Password : <input type=”password”
name=”psw”><br>
<input type=”submit”
value=”Login”>
</form>
</body>
</html>
Pada halaman login di atas terdapat
action berupa file log.php
<?php
session_start();
mysql_connect(“localhost”,”root”,””) or
die(“Nggak bisa koneksi”);
mysql_select_db(“test”);//sesuaikan dengan nama database anda
$userid = $_POST['userid'];
$psw = $_POST['psw'];
$op = $_GET['op'];
if($op==”in”){
$cek = mysql_query(“SELECT * FROM
tabeluser WHERE userid=’$userid’ AND password=’$psw'”);
if(mysql_num_rows($cek)==1){//jika
berhasil akan bernilai 1
$c = mysql_fetch_array($cek);
$_SESSION['userid'] = $c['userid'];
$_SESSION['level'] = $c['level'];
if($c['level']==”admin”){
header(“location:homeadmin.php”);
}else if($c['level']==”user”){
header(“location:homeuser.php”);
}
}else{
die(“password salah <a
href=\”javascript:history.back()\”>kembali</a
}
}else if($op==”out”){
unset($_SESSION['userid']);
unset($_SESSION['level']);
header(“location:index.php”);
}
?>
Pada kode log.php tersebut pertama-tama kita
cek ke dalam tabeluser apakah ada userid dan password yang cocok. Jika ada maka
kita set variabel $_SESSION['userid'] dan $_SESSION['level'], di mana nilai dari variabel session
tersebut kita ambil dari database. Jika level user adalah admin maka langsung
kita arahkan ke halamanhomeadmin.php. Jika level user adalah
user, maka kita arahkan ke halaman homeuser.php
Berikut adalah kode homeadmin.php
<?php
session_start();
//cek apakah user sudah login
if(!isset($_SESSION['userid'])){
die(“Anda belum login”);//jika belum
login jangan lanjut..
}
//cek level user
if($_SESSION['level']!=”admin”){
die(“Anda bukan admin”);//jika bukan
admin jangan lanjut
}
?>
<html>
<head><title>Halaman
Admin</title></head>
<body>
<?php echo “<h3>Welcome
“.$_SESSION['userid'].”</h3>”;?>
Menu :
<a href=halaman1.php>Halaman
1</a> |
<a href=halaman2.php>Halaman
2</a> |
<a href=log.php?op=out>Log Out</a>
</body>
</html>
Pada kode di atas untuk mengecek apakah user sudah login atau belum adalah
dengan menggunakan kode if(!isset($_SESSION['userid'])),
artinya jika user belum login, yang ditandai dengan telah diset-nya variabel $_SESSION['userid']. Jika ternyata belum login maka kita
stop sampai disitu dengan menggunakan fungsi die().
Jika user ternyata sudah login maka kita cek tingkatan level user. Kode$_SESSION['level']!=”admin”) berarti jika level tidak
sama dengan admin, maka stop ataudie().
Sekarang mari kita lihat kode
homeuser.php
<?php
session_start();
//cek apakah user sudah login
if(!isset($_SESSION['userid'])){
die(“Anda belum login”);//jika belum
login jangan lanjut..
}
//cek level user
if($_SESSION['level']!=”user”){
die(“Anda bukan user”);//jika bukan user
jangan lanjut
}
?>
<html>
<head><title>Halaman
User</title></head>
<body>
<?php echo “<h3>Welcome
“.$_SESSION['userid'].”</h3>”;?>
Menu :
<a href=halaman2.php>Halaman
2</a> |
<a href=halaman3.php>Halaman
3</a> |
<a href=log.php?op=out>Log Out</a>
</body>
</html>
halaman1.php
<?php
session_start();
//cek apakah user sudah login
if(!isset($_SESSION['userid'])){
die(“Anda belum login”);//jika belum
login jangan lanjut..
}
//cek level user
if($_SESSION['level']!=”admin”){
die(“Anda bukan admin”);//jika bukan
admin jangan lanjut
}
?>
<html>
<head><title>Halaman
Admin</title></head>
<body>
<?php echo “<h3>Welcome “.$_SESSION['userid'].”</h3>”;?>
<h4>Ini Halaman 1</h4>
</body>
</html>
Halaman2.php
<?php
session_start();
//cek apakah user sudah login
if(!isset($_SESSION['userid'])){
die(“Anda belum login”);//jika belum
login jangan lanjut..
}
//cek level user
if($_SESSION['level']!=”admin”
&& $_SESSION['level']!=”user”){
die(“Anda bukan admin”);//jika bukan
admin dan user jangan lanjut
}
?>
<html>
<head><title>Halaman Admin
dan User</title></head>
<body>
<?php echo “<h3>Welcome “.$_SESSION['userid'].”</h3>”;?>
<h4>Ini Halaman 2</h4>
</body>
</html>
Halaman3.php
<?php
session_start();
//cek apakah user sudah login
if(!isset($_SESSION['userid'])){
die(“Anda belum login”);//jika belum
login jangan lanjut..
}
//cek level user
if($_SESSION['level']!=”user”){
die(“Anda bukan user”);//jika bukan user
jangan lanjut
}
?>
<html>
<head><title>Halaman
User</title></head>
<body>
<?php echo “<h3>Welcome “.$_SESSION['userid'].”</h3>”;?>
<h4>Ini Halaman 3</h4>
</body>
</html>
Casino Site Review | Lucky Club Casino |
ReplyDeleteCasino Site Review | Lucky Club Casino | Is this casino scam or legit? Check out our detailed review of our review and find luckyclub out why. Rating: 1.7 · Review by Lucky Club