Implementasi Login Form untuk user account untuk sebuah website/sebuah system sagatlah dibutuhkan, nah untuk mengintegrasikkan antara level-leveluser didalamnya maka dibutuhkan suatu filter untuk menentukan hak akses masing masing user, misal bagi admin bisa merubah, menghapus, dll… untuk user biasa mungkin hanya bisa melihat dan mencetak.
berikut penulis bermaksud berbagi teknik pembuatan user account berdasarkan level user, namun ini sangatlah sederhana, tergantung nanti bagi pembaca untuk mengembangkan lebih lanjut. hayuk kita mulai sekarang.
awalnya kita buat dulu database dan table didalamnya
CREATE DATABASE `login` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `login`;
CREATE TABLE `user` (
`id_user` varchar(50) collate latin1_general_ci NOT NULL,
`password` varchar(50) collate latin1_general_ci NOT NULL,
`nama_lengkap` varchar(100) collate latin1_general_ci NOT NULL,
`email` varchar(100) collate latin1_general_ci NOT NULL,
`level` varchar(50) collate latin1_general_ci NOT NULL default 'user',
PRIMARY KEY (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
kemudian isikan nama user berikut kedalam
table user
INSERT INTO `user` VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'andyz_zx@yahoo.com', 'admin');
INSERT INTO `user` VALUES ('user', 'ee11cbb19052e40b07aac0ca060c23ee', 'User Biasa', 'andyz_zx@yahoo.com', 'user');
nah sekarang kita masuk ke dalam inti scripnya
simpan dengan
koneksi.php
<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "login";
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>
simpan dengan nama
index.php
<html>
<head>
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form method="POST" action="cek_login.php">
<table>
<tr><td>Username</td><td> : <input type="text" name="username"></td></tr>
<tr><td>Password</td><td> : <input type="password" name="password"></td></tr>
<tr><td colspan="2"><input type="submit" value="Login"></td></tr>
</table>
</form>
<pre>
untuk login sebagai administrator
- user : admin
- pass : admin
untuk login sebagai user biasa
- user : user
- pass : user
</pre>
</body>
</html>
simpan dengan nama
cek_login.php
<?php
include "koneksi.php";
$pass=md5($_POST[password]);
$sql=mysql_query("SELECT * FROM user WHERE id_user='$_POST[username]' AND password='$pass'");
$level=mysql_num_rows($sql);
$r=mysql_fetch_array($sql);
if ($level > 0){
session_start();
session_register("namauser");
session_register("passuser");
session_register("leveluser");
$_SESSION[namauser] = $r[id_user];
$_SESSION[passuser] = $r[password];
$_SESSION[leveluser]= $r[level];
header('location:admin.php');
}
else{
header('location:index.php');
}
?>
simpan dengan nama
admin.php
<?php
session_start();
if (empty($_SESSION[namauser]) AND empty($_SESSION[passuser])){
echo "<center>Untuk mengakses halaman ini, Anda harus login terlebih dahulu<br>";
echo "<a href=index.php><b>Halaman Login</b></a></center>";
}
else{
include "koneksi.php";
if ($_SESSION['leveluser']=='admin'){
$sql=mysql_query("SELECT * FROM user WHERE level='admin'");
$level=mysql_num_rows($sql);
$r=mysql_fetch_array($sql);
echo "Hi <b>$r[nama_lengkap]</b><br><br>";
echo "Andamasuk sebagai <b>Administrator</b><br>";
echo "<a href=logout.php><b>Logout</b></a></center>";
}
elseif ($_SESSION['leveluser']=='user'){
$sql=mysql_query("SELECT * FROM user WHERE level='user'");
$level=mysql_num_rows($sql);
$r=mysql_fetch_array($sql);
echo "Hi <b>$r[nama_lengkap]</b><br><br>";
echo "Andamasuk sebagai <b>User Biasa</b><br>";
echo "<a href=logout.php><b>Logout</b></a></center>";
}
}
?>
simpan dengan nama
logout.php
<?php
session_start(); //memulai session
session_destroy(); //mengakhiri session
header('location:admin.php'); //mengembalikan ke admin.php
?>
nah mudah kan, tinggal pengembangan masing2
ya.. agar lebih baik dan sempurna, selamat mencoba
untuk script selengkapnya download
disini