MEMBUAT LOGIN MUTLI USER
Membuat Login Multi User dengan PHP
18:34 02 Oct 2010 @PHP
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 :
- Buat tabel user di database yang menyimpan data level
masing-masing user
- Ketika login kita simpan level user yang login ke dalam
variabel $_SESSION
- 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 PHPnya. Misal kita punya banyak halaman, di
mana halaman-halaman tersebut mempunyai hak akses yang berbeda-beda. Contoh
halaman-halaman web yang kita punya :
File / Halaman Web
|
Yang Boleh Akses
|
homeadmin.php
|
admin
|
homeuser.php
|
user
|
halaman1.php
|
admin
|
halaman2.php
|
admin dan user
|
halaman3.php
|
user
|
Berikut adah struktur tabeluser
di database :
1
|
--
|
2
|
-- Table structure for table `tabeluser`
|
3
|
--
|
4
|
|
5
|
CREATE TABLE `tabeluser` (
|
6
|
`userid` varchar(20) NOT NULL,
|
7
|
`password` varchar(50) NOT NULL,
|
8
|
`level` varchar(15) NOT NULL,
|
9
|
PRIMARY KEY (`userid`)
|
10
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
Pertama-tama mari kita buat halaman
untuk login. index.php
1
|
<html>
|
2
|
<head><title>Login</title></head>
|
3
|
<body>
|
4
|
<h2>Halaman Login</h2>
|
5
|
<form action="log.php?op=in" method="post">
|
6
|
User ID : <input type="text" name="userid"><br>
|
7
|
Password : <input type="password" name="psw"><br>
|
8
|
<input type="submit" value="Login">
|
9
|
</form>
|
10
|
</body>
|
11
|
</html>
|
Pada halaman login di atas terdapat
action berupa file log.php
1
|
<?php
|
2
|
session_start();
|
3
|
mysql_connect("localhost","root","") or die("Nggak bisa koneksi");
|
4
|
mysql_select_db("test");//sesuaikan dengan nama database anda
|
5
|
|
6
|
$userid = $_POST['userid'];
|
7
|
$psw = $_POST['psw'];
|
8
|
$op = $_GET['op'];
|
9
|
|
10
|
if($op=="in"){
|
11
|
$cek = mysql_query("SELECT * FROM tabeluser WHERE userid='$userid' AND password='$psw'");
|
12
|
if(mysql_num_rows($cek)==1){//jika berhasil akan bernilai 1
|
13
|
$c = mysql_fetch_array($cek);
|
14
|
$_SESSION['userid'] = $c['userid'];
|
15
|
$_SESSION['level'] = $c['level'];
|
16
|
if($c['level']=="admin"){
|
17
|
header("location:homeadmin.php");
|
18
|
}else if($c['level']=="user"){
|
19
|
header("location:homeuser.php");
|
20
|
}
|
21
|
}else{
|
22
|
die("password salah <a href=\"javascript:history.back()\">kembali</a>");
|
23
|
}
|
24
|
}else if($op=="out"){
|
25
|
unset($_SESSION['userid']);
|
26
|
unset($_SESSION['level']);
|
27
|
header("location:index.php");
|
28
|
}
|
29
|
?>
|
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
halaman homeadmin.php. Jika level user adalah user, maka kita arahlan ke
halaman homeuser.php
Berikut adalah kode homeadmin.php
1
|
<?php
|
2
|
session_start();
|
3
|
|
4
|
//cek apakah user sudah login
|
5
|
if(!isset($_SESSION['userid'])){
|
6
|
die("Anda belum login");//jika belum login jangan lanjut..
|
7
|
}
|
8
|
|
9
|
//cek level user
|
10
|
if($_SESSION['level']!="admin"){
|
11
|
die("Anda bukan admin");//jika bukan admin jangan lanjut
|
12
|
}
|
13
|
?>
|
14
|
|
15
|
<html>
|
16
|
<head><title>Halaman Admin</title></head>
|
17
|
<body>
|
18
|
<?php echo "<h3>Welcome ".$_SESSION['userid']."</h3>";?>
|
19
|
Menu :
|
20
|
<a href=halaman1.php>Halaman 1</a> |
|
21
|
<a href=halaman2.php>Halaman 2</a> |
|
22
|
<a href=log.php?op=out>Log Out</a>
|
23
|
|
24
|
</body>
|
25
|
</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 atau die().
Sekarang mari kita lihat kode
homeuser.php
1
|
<?php
|
2
|
session_start();
|
3
|
|
4
|
//cek apakah user sudah login
|
5
|
if(!isset($_SESSION['userid'])){
|
6
|
die("Anda belum login");//jika belum login jangan lanjut..
|
7
|
}
|
8
|
|
9
|
//cek level user
|
10
|
if($_SESSION['level']!="user"){
|
11
|
die("Anda bukan user");//jika bukan user jangan lanjut
|
12
|
}
|
13
|
?>
|
14
|
|
15
|
<html>
|
16
|
<head><title>Halaman User</title></head>
|
17
|
<body>
|
18
|
<?php echo "<h3>Welcome ".$_SESSION['userid']."</h3>";?>
|
19
|
Menu :
|
20
|
<a href=halaman2.php>Halaman 2</a> |
|
21
|
<a href=halaman3.php>Halaman 3</a> |
|
22
|
<a href=log.php?op=out>Log Out</a>
|
23
|
|
24
|
</body>
|
25
|
</html>
|
halaman1.php
1
|
<?php
|
2
|
session_start();
|
3
|
|
4
|
//cek apakah user sudah login
|
5
|
if(!isset($_SESSION['userid'])){
|
6
|
die("Anda belum login");//jika belum login jangan lanjut..
|
7
|
}
|
8
|
|
9
|
//cek level user
|
10
|
if($_SESSION['level']!="admin"){
|
11
|
die("Anda bukan admin");//jika bukan admin jangan lanjut
|
12
|
}
|
13
|
?>
|
14
|
|
15
|
<html>
|
16
|
<head><title>Halaman Admin</title></head>
|
17
|
<body>
|
18
|
<?php echo "<h3>Welcome ".$_SESSION['userid']."</h3>";?>
|
19
|
|
20
|
<h4>Ini Halaman 1</h4>
|
21
|
|
22
|
</body>
|
23
|
</html>
|
halaman2.php
1
|
<?php
|
2
|
session_start();
|
3
|
|
4
|
//cek apakah user sudah login
|
5
|
if(!isset($_SESSION['userid'])){
|
6
|
die("Anda belum login");//jika belum login jangan lanjut..
|
7
|
}
|
8
|
|
9
|
//cek level user
|
10
|
if($_SESSION['level']!="admin" && $_SESSION['level']!="user"){
|
11
|
die("Anda bukan admin");//jika bukan admin dan user jangan lanjut
|
12
|
}
|
13
|
?>
|
14
|
|
15
|
<html>
|
16
|
<head><title>Halaman Admin dan User</title></head>
|
17
|
<body>
|
18
|
<?php echo "<h3>Welcome ".$_SESSION['userid']."</h3>";?>
|
19
|
|
20
|
<h4>Ini Halaman 2</h4>
|
21
|
|
22
|
</body>
|
23
|
</html>
|
halaman3.php
1
|
<?php
|
2
|
session_start();
|
3
|
|
4
|
//cek apakah user sudah login
|
5
|
if(!isset($_SESSION['userid'])){
|
6
|
die("Anda belum login");//jika belum login jangan lanjut..
|
7
|
}
|
8
|
|
9
|
//cek level user
|
10
|
if($_SESSION['level']!="user"){
|
11
|
die("Anda bukan user");//jika bukan user jangan lanjut
|
12
|
}
|
13
|
?>
|
14
|
|
15
|
<html>
|
16
|
<head><title>Halaman User</title></head>
|
17
|
<body>
|
18
|
<?php echo "<h3>Welcome ".$_SESSION['userid']."</h3>";?>
|
19
|
|
20
|
<h4>Ini Halaman 3</h4>
|
21
|
|
22
|
</body>
|
23
|
</html>
|
Tidak ada komentar:
Posting Komentar