Cara Membuat Form Login Multi User
Pada kesempatan yang baik ini, saya ingin memposting tentang cara membuat login berdasarkan level user atau disebut juga multi user, yaitu memberikan batasan kepada user yang akan masuk ke sistem aplikasi yang kita buat berdasarkan hak akses user. Dari tutorial ini saya membuat dua level user yaitu administrator dan member. administrator mempunyai hak akses penuh atas aplikasi dan member mempunyai hak akses berdasarkan laman yang di tentukan oleh administrator.gambar tampilan seperti di berikut :
Sebelum kita masuk ke script siapkan dulu tabelnya, cara membuat tabel bisa anda baca tutorial sebelumnya "CARA MEMBUAT DATABASE DAN TABEL DI PHPMYADMIN" karena tutorial yang saya buat ini saling terkait. Ikuti Langkah - langkah di bawah ini :
- Buat database dengan nama pegawai dan tabel dengan nama users seperti tutorial sebelum ini. struktur tabelnya seperti gambar di bawah :
CREATE TABLE `users` (
`id_user` int(11) NOT NULL,
`nama` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`username` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`level_user` varchar(100) COLLATE utf8_unicode_ci NOT NULL)
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
2. Setelah tabel siap, lalu buatlah folder didalam host, caranya cari folder xampp yaitu tempat diinstallnya xampp anda, kemudian buka folder htdocs setelah itu buatlah folder baru dengan nama login dan di dalam folder login buat dua folder dengan nama on-admin dan on-member. Lihat gambar dibawah :
3. Membuat Koneksi Ke Database. Dalam tutorial sebelumnya kita sudah membuat database dengan nama pegawairs dan tabel dengan nama users. Buka media anda untuk membuat file koneksi dengan php. disini saya menggunakan dreamweaver 2004. lalu ketikkan kode di bawa ini.
<?php
define('DBHOST', 'localhost');
define('DBUSER', 'root');
define('DBPASS', '');
define('DBNAME', 'pegawairs');
$dbconnect = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
if ($dbconnect->connect_error) {
die('Database Not Connect. Error : ' . $dbconnect->connect_error);
}
?>
selanjutnya simpan dalam folder login yang sudah dibuat tadi dengan nama config.php.
4. Lalu buatlah file php dengan nama check-login.php, file ini bertujuan untuk mengecek level user. Jika login sebagai administrator maka akan dibawa ke halaman admin dan jika login sebagai member maka akan di bawa ke halaman member. Ketikkan kode berikut :
<?php
session_start();
require 'config.php';
if ( isset($_POST['username']) && isset($_POST['password']) ) {
$sql_check = "SELECT nama, level_user, id_user FROM users
WHERE
username=?
AND
password=?
LIMIT 1";
$check_log = $dbconnect->prepare($sql_check);
$check_log->bind_param('ss', $username, $password);
$username = $_POST['username'];
$password = md5( $_POST['password'] );
$check_log->execute();
$check_log->store_result();
/**
*Jika di temukan
*/
if ( $check_log->num_rows == 1 ) {
$check_log->bind_result($nama, $level_user, $id_user);
while ( $check_log->fetch() ) {
$_SESSION['user_login'] = $level_user;
$_SESSION['sess_id'] = $id_user;
$_SESSION['nama'] = $nama;
}
$check_log->close();
header('location:on-'.$level_user);
exit();
/**
* jika tidak ditemukan, maka dialihkan kembali ke login
*/
} else {
header('location: login.php?error='.base64_encode('Username dan Password Salah!!!'));
exit();
}
} else {
header('location:login.php');
exit();
}
simpan file tersebut di folder login dengan nama check-login.php
5. Membuat file index.php
Untuk membuat file index.php ketikkan kode dibawah :
<?php
session_start();
if ( isset($_SESSION['user_login']) && $_SESSION['user_login'] != '' ) {
$halaman = $_SESSION['user_login'];
header('location:on-'. $halaman);
exit();
} else {
header('location:login.php');
exit();
}
penjelasan dari kode di atas adalah jika user login sebagai admin maka akan masuk kehalaman administrator dan jika login sebagai member maka masuk ke halaman member dengan variabel $halaman, jika salah maka akan masuk ke halaman login lagi. simpan file tersebut ke folder login dengan nama file index.php.6.Membuat Form Login. ketikkan kode ini dan letakkan di bawah body
<div class="col-md-4 col-md-offset-4 form-login">
<?php
/* menampilkan pesan error jika username atau passwor yg dimasukkan salah */
if (isset($_GET['error'])) : ?>
<div class="alert alert-warning alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Warning!</strong> <?=base64_decode($_GET['error']);?>
</div>
<?php endif;?>
<div class="outter-form-login">
<div class="logo-login">
<em class="glyphicon glyphicon-user"></em>
</div>
<form action="check-login.php" class="inner-login" method="post">
<h3 class="text-center title-login">LOGIN USERS</h3>
<div class="form-group">
<input type="text" class="form-control" name="username" placeholder="Username">
</div>
<div class="form-group">
<input type="password" class="form-control" name="password" placeholder="Password">
</div>
<input type="submit" class="btn btn-block btn-custom-green" value="LOGIN" />
<div class="text-center forget">
<p>Lupa Paswword ?</p>
</div>
</form>
</div>
</div>
simpan file ini dengan nama login.php didalam folder login
7.Membuat file logout.php
Masukkan kode berikut :
<?php
session_start();
session_destroy();
header('location:login.php');
simpan file tersebut dengan nama logout.php difolder login.
penjelasan, jika login bukan sebagai admin atau member maka akan di alihkan kembali kehalaman login.
8. Membuat Halaman Administrator Buatlah halaman administrator dengan mengetikkan kode seperti berikut ini :
<?php
session_start();
/**
* Jika Tidak login atau sudah login tapi bukan sebagai admin
* maka akan dibawa kembali kehalaman login atau menuju halaman yang seharusnya.
*/
if ( !isset($_SESSION['user_login']) ||
( isset($_SESSION['user_login']) && $_SESSION['user_login'] != 'admin' ) ) {
header('location:./../login.php');
exit();
}
?>
<h2>Hallo Admin <?=$_SESSION['nama'];?> Apakabar ?</h2>
<a href="./../logout.php">Logout</a>
simpan file tersebut dengan nama index.php dan letakkan dalam folder on-admin9. Membuat Halaman Member. Dan buatlah halaman member dengan mengetikkan kode seperti di bawah ini :
<?php
session_start();
/**
* Jika Tidak login atau sudah login tapi bukan sebagai admin
* maka akan dibawa kembali kehalaman login atau menuju halaman yang seharusnya.
*/
if ( !isset($_SESSION['user_login']) || <
( isset($_SESSION['user_login']) && $_SESSION['user_login'] != 'member' ) ) {
header('location:./../login.php');
exit();
}
?>
<h2>Hallo Member <?=$_SESSION['nama'];?> Apakabar ?</h2>
<a href="./../logout.php">Logout</a>
simpan file ini dengan nama index.php di dalam folder on-member.
10. Jalankan browser anda
Ketikkan localhost/login/index.php. maka akan tampil seperti digambar dibawah