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; |
| view plain | print | ? |
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> |
| view plain | print | ? |
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"); |
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){ |
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 | ?> |
| view plain | print | ? |
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 | |
5 | if(!isset($_SESSION['userid'])){ |
6 | die("Anda belum login"); |
7 | } |
8 | |
9 | |
10 | if($_SESSION['level']!="admin"){ |
11 | die("Anda bukan admin"); |
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> |
| view plain | print | ? |
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 | |
5 | if(!isset($_SESSION['userid'])){ |
6 | die("Anda belum login"); |
7 | } |
8 | |
9 | |
10 | if($_SESSION['level']!="user"){ |
11 | die("Anda bukan user"); |
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> |
| view plain | print | ? |
halaman1.php
|
1 | <?php |
2 | session_start(); |
3 | |
4 | |
5 | if(!isset($_SESSION['userid'])){ |
6 | die("Anda belum login"); |
7 | } |
8 | |
9 | |
10 | if($_SESSION['level']!="admin"){ |
11 | die("Anda bukan admin"); |
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> |
| view plain | print | ? |
halaman2.php
|
1 | <?php |
2 | session_start(); |
3 | |
4 | |
5 | if(!isset($_SESSION['userid'])){ |
6 | die("Anda belum login"); |
7 | } |
8 | |
9 | |
10 | if($_SESSION['level']!="admin" && $_SESSION['level']!="user"){ |
11 | die("Anda bukan admin"); |
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> |
| view plain | print | ? |
halaman3.php
|
1 | <?php |
2 | session_start(); |
3 | |
4 | |
5 | if(!isset($_SESSION['userid'])){ |
6 | die("Anda belum login"); |
7 | } |
8 | |
9 | |
10 | if($_SESSION['level']!="user"){ |
11 | die("Anda bukan user"); |
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> |
| view plain | print | ? |
Download Source Code
Tidak ada komentar :
Posting Komentar
Silahkan masukan komentar anda...