Anda di halaman 1dari 7

LOGIN WITH MULTIUSER AND LEVEL ACCESS

1.CREATE TABLE user ( 2.username varchar(20), 3.password varchar(20), 4.level varchar(20), 5.PRIMARY KEY(username) 6.);

view sourceprint?
1.INSERT 2.INSERT 3.INSERT 4.INSERT 5.INSERT INTO INTO INTO INTO INTO `user` `user` `user` `user` `user` VALUES ('a', VALUES ('b', VALUES ('c', VALUES ('d', VALUES ('e', 'pass1', 'pass2', 'pass3', 'pass4', 'pass5', 'admin'); 'admin'); 'user'); 'user'); 'user');

Wah.. passwordnya kok tidak dienkripsi? he 3x ya itu saya sengaja karena supaya Anda bisa mencoba script yang saya buat ini. Memang sebaiknya passwordnya Anda enkripsi, paling tidak menggunakan md5(). Nah.. selanjutnya kita buat form loginnya. login.htm view sourceprint?
01.<form method="post" action="loginsubmit.php"> 02.<table border="0"> 03.<tr> 04.<td>Masukkan Username </td> 05.<td><input name="username" type="text"></td> 06.</tr> 07.<tr> 08.<td>Masukkan Password </td> 09.<td><input name="pass" type="password"></td> 10.</tr> 11.<tr> 12.<td>&nbsp;</td> 13.<td><input type="submit" name="Submit" value="Submit"></td> 14.</tr> 15.</table> 16.</form>

Form login sudah dibuat, berikutnya kita buat script untuk memproses loginnya. loginsubmit.php view sourceprint?
01.<?php 02. 03.// memulai session 04.session_start(); 05. 06.mysql_connect('dbhost', 'dbuser', 'dbpass'); 07.mysql_select_db('dbname'); 08. 09.$username = $_POST['username'];

10.$password = $_POST['pass']; 11. 12.// query untuk mendapatkan record dari username 13.$query = "SELECT * FROM user WHERE username = '$username'"; 14.$hasil = mysql_query($query); 15.$data = mysql_fetch_array($hasil); 16. 17.// cek kesesuaian password 18.if ($password == $data['password']) 19.{ 20.echo "<h1>Login Sukses</h1>"; 21. 22.// menyimpan username dan level ke dalam session 23.$_SESSION['level'] = $data['level']; 24.$_SESSION['username'] = $data['username']; 25. 26.// tampilkan menu 27.include "menu.php"; 28. 29.} 30.else echo "<h1>Login gagal</h1>"; 31. 32.?>

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 view sourceprint?
01.<?php 02. 03.session_start(); 04. 05.if ($_SESSION['level'] == "admin") 06.{ 07.// tampilkan menu untuk admin 08.echo "<a href='hal1.php'>Halaman 1</a> "; 09.echo "<a href='hal2.php'>Halaman 2</a> "; 10.echo "<a href='hal3.php'>Halaman 3</a> "; 11.echo "<a href='logout.php'>Logout</a> "; 12.} 13.else if ($_SESSION['level'] == "user") 14.{ 15.// tampilkan menu untuk user biasa 16.echo "<a href='hal3.php'>Halaman 3</a>"; 17.echo "<a href='logout.php'>Logout</a> "; 18.} 19. 20.?>

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 view sourceprint?
01.<?php 02. 03.session_start(); 04. 05.// cek apakah user yang mengakses halaman ini sudah melalui login atau belum 06.// logikanya jika user telah login dan sukses, maka SESSION level dan SESSION username ini pasti sudah ada 07.// jika ada user yang mencoba akses halaman ini tanpa login, maka logikanya kedua SESSION belum ada 08. 09.if (isset($_SESSION['level']) && isset($_SESSION['username'])) 10.{ 11.// tampilkan menu. 12.// menu hanya ditampilkan bila halaman ini diakses oleh user yang telah login 13. 14.include "menu.php"; 15. 16.// cek level user apakah admin atau bukan 17. 18.if ($_SESSION['level'] == "admin") 19.{ 20.// tampilkan konten halaman 1 jika levelnya admin 21. 22.echo "<h1>Halaman 1</h1>"; 23.echo "<p>Selamat datang di halaman satu wahai user : ".$_SESSION['username']."</p>"; 24.echo "<p>Ini adalah konten halaman 1</p>"; 25.} 26.else 27.{ 28.// jika levelnya bukan admin, tampilkan pesan 29.echo "<h1>Maaf.. Anda bukan user berlevel Administrator</h1>"; 30.} 31.} 32.else 33.{ 34.echo "<h1>Nah.. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>"; 35.} 36. 37.?>

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

view sourceprint?
01.<?php 02. 03.session_start(); 04. 05.if (isset($_SESSION['level']) && isset($_SESSION['username'])) 06.{ 07.include "menu.php"; 08. 09.if (($_SESSION['level'] == "admin") || ($_SESSION['level'] == "user")) 10.{ 11.echo "<h1>Halaman 3</h1>"; 12.echo "<p>Selamat datang di halaman tiga wahai user : ".$_SESSION['username']."</p>"; 13.echo "<p>Ini adalah konten halaman 3</p>"; 14.} 15.} 16.else 17.{ 18.echo "<h1>Nah.. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>"; 19.} 20. 21.?>

Eits hampir lupa, yang terakhir kita buat script logoutnya. Pada prinsipnya proses logout adalah menghapus semua session yang tadi terbentuk ketika login sukses. logout.php view sourceprint?
1.<?php 2. 3.session_start(); 4.session_destroy(); 5.echo "<h1>Anda sudah logout</h1>"; 6.echo "<p><a href='formlogin.htm'>Login Kembali</a></p>"; 7. 8.?>

Thats it mudah bukan membuatnya? Mudah-mudahan artikel di atas menjawab semua unek-unek yang dihadapi bagi Anda yang ingin membuat aplikasi dengan multi user.

1) Creating a form Here is the code for making the form. The form asks for your username and password. Save this code as login.php Code:
<html> <head> <title>Please login</title> </head> <body> <?php if(isset($_GET["wrong"])){ echo("<b>Username or password is incorrect!<br />Please try again.</b>"); } ?> <form action="login2.php" method="post"> <br /> Username:<br /> <input type="text" name="username" /><br /> Password:<br /> <input type="password" name="password" /> <br /> <br /> <input type="submit" value="Login" /> </form> </body> </html>

The piece of php code will tell the viewer that he or she typed a wrong username or password. between the <form></form> tags we have 3 input fields. 1 for the username, 1 for the password, and 1 that will submit the inputs and send it to login2.php. Note that the form will be sent using the "post" method. This is the safest. 2)Checking the userinput In this step we will check if the username and password are correct. This is done with php. No html will be used. Create a new page and call it login2.php. Give it the following content: PHP Code:
<?php $usernames = array("user1", "user2", "user3", "superman"); $passwords = array("pass1", "pass2", "password3", "supermans password"); $page = "mypage.php";

for($i=0;$i<count($usernames);$i++){ $logindata[$usernames[$i]]=$passwords[$i]; } if($logindata[$_POST["username"]]==$_POST["password"]){ session_start(); $_SESSION["username"]=$_POST["username"]; header('Location: '.$page); exit; }else{ header('Location: login.php?wrong=1'); exit;

} ?>

You might want to edit the first 3 lines. 1)$usernames is an array with all the usernames. To add a new one: PHP Code:
$usernames = array("user1", "user2", "user3", "superman", "new one");

2)$passwords is an array with all the passwords. To add a new one: PHP Code:
$passwords = array("pass1", "pass2", "password3", "supermans password", "ne w one");

Make sure that the username and the password have the same position. user1 will be able to login with the password pass1, not with any other password. user2 with pass2 and no other. 3)$page is the page the user will go to when he is logged in. Change mypage.php to the page you would like to be the main page for logged in users. make sure the quotationmarks are still around it! 3) Checking if the user is still logged in Create a new page, call it login3.php with the following code: PHP Code:
<?php session_start(); if(!isset($_SESSION["username"]){ header('Location: login.php'); exit; } ?>

This code simply checks if the sesion that we made in login2.php has a value. If it doesn't it sends you to the login page. 4) Making your pages protected All the pages that you want to be protected need to have a .php extension! otherwise they cannot be protected. Add this piece of code to the first line. PHP Code:
<?php require("login3.php"); ?>

Make sure it is on the first line. Otherwise it will give you an error. Now you pages are protected! simple?

5) Extras making a log out page: make a new .php page and add the following contents at the very beginning: PHP Code:
<?php session_start();session_unset();session_destroy(); ?> Your fancy logout message here

create a link somewhere on your secured pages that leads to the logout page and the user will be logged out when he clicks the link. An other extra: showing the user's name: just put this piece of code in any secured page where you want to show the name: PHP Code:
<?php echo($_SESSION["username"]); ?>