Membuat Login Multi User dengan PHP
PHP Source CodeNah, pada kesempatan kali ini saya akan mencoba membuat sebuah sistem login sederhana dimana masing-masing user dapat login sesuai dengan hak akses yang telah diberikan.
Baiklah, berikut langkah-langkahnya:
Buat database dengan nama
multiuser
, dan tabel tb_user
. Berikut kodenya:CREATE DATABASE IF NOT EXISTS `multiuser` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `multiuser`; CREATE TABLE IF NOT EXISTS `tb_user` ( `username` varchar(100) NOT NULL, `password` varchar(100) NOT NULL, `hak_akses` varchar(10) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `tb_user` (`username`, `password`, `hak_akses`) VALUES ('admin', 'admin', 'Admin'), ('user', 'user', 'User');
Buat file
koneksi.php
untuk melakukan koneksi ke database yang telah dibuat tadi. Berikut kodenya:<?php $host = "localhost"; $username = "root"; $password = ""; $database = "multiuser"; mysql_connect($host,$username,$password) or die("Koneksi gagal"); mysql_select_db($database) or die("Database tidak bisa dibuka"); ?>
Juka sudah, sekarang kita buat
css
. Saya menggunakan 2 css:- Css bootstrap versi 3.3.7, sobat bisa download langsung di
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css
- Css modifikasi, buat file
style.css
. Berikut cuplikan kodenya:
html, body { height: 100%; } body { display: -ms-flexbox; display: -webkit-box; display: flex; -ms-flex-align: center; -ms-flex-pack: center; -webkit-box-align: center; align-items: center; -webkit-box-pack: center; justify-content: center; padding-top: 40px; padding-bottom: 40px; background-color: #f5f5f5; } .form-signin { width: 100%; max-width: 330px; padding: 15px; margin: 0 auto; } .form-signin .checkbox { font-weight: 400; } .form-signin .form-control { position: relative; box-sizing: border-box; height: auto; padding: 10px; font-size: 16px; } .form-signin .form-control:focus { z-index: 2; } .form-signin input[type="email"] { margin-bottom: -1px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .form-signin input[type="password"] { margin-bottom: 10px; border-top-left-radius: 0; border-top-right-radius: 0; }
Sekarang kita buat file
index.php
lalu salin kode berikut:<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="description" content="Sistem login multiuser" /> <meta name="author" content="rap3rr0r"> <title>Login ..</title> <link rel="stylesheet" href="bootstrap.min.css" /> <link rel="stylesheet" href="style.css" /> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <!-- Google Font --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic"> </head> <body> <form action="act-login.php" method="POST" class="form-signin"> <h1 class="text-center">Login kuy ..</h1> <div class="form-group"> <div class="col-lg-12"> <input type="text" class="form-control" name="username" style="margin-top: 5px;" placeholder="Username" required> <input type="password" class="form-control" name="password" style="margin-top: 5px;" placeholder="Password" required> <button type="submit" class="btn btn-default">Masuk</button> </div> </div> <p class="mt-5 mb-3 text-muted text-center"><a href="https://facebook.com/rap3rr0r">© 2019</a></p> </form> </body> </html>
Selanjutnya kita buat file
act-login.php
untuk mengeksekusi form
yang ada pada file index.php
. Berikut kodenya:<?php include "koneksi.php"; function antiinjection($data){ $filter_sql = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES)))); return $filter_sql; } $username = antiinjection($_POST['username']); $password = antiinjection($_POST['password']); $waktu = time()+25200; $expired = 60; $query = mysql_query("SELECT * FROM tb_user WHERE username='$username' AND password='$password'"); $in = mysql_num_rows($query); $r = mysql_fetch_array($query); if ($in > 0){ session_start(); $_SESSION['username'] = $r['username']; $_SESSION['password'] = $r['password']; $_SESSION['hak_akses'] = $r['hak_akses']; $_SESSION['timeout'] = $waktu+$expired; $waktulog = time(); if($r['hak_akses']=="Admin"){ header("location:home-admin.php"); } else if($r['hak_akses']=="User"){ header("location:home-user.php"); } }else{ echo "<script type='text/javascript'> window.alert('Username Atau Password Anda Salah'); window.location =('index.php')</script>"; } ?>
Kita buat file
home-admin.php
dan home-user.php
untuk mengarahkan jika user telah berhasil login.File
home-admin.php
:<?php session_start(); if(!isset($_SESSION['username'])){ die("<script>window.alert('Oops! Access Failed, sistem logout. Anda harus melakukan Login kembali.'); location=('./')</script>"); } if($_SESSION['hak_akses']!="Admin"){ die("<script>window.alert('Oops! Access Failed, Anda Tidak Memiliki akses.'); location=('./')</script>"); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="description" content="Sistem login multiuser" /> <meta name="author" content="rap3rr0r"> <title>Home Admin ..</title> <link rel="stylesheet" href="bootstrap.min.css" /> <link rel="stylesheet" href="style.css" /> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <!-- Google Font --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic"> </head> <body> <h1 class="text-center">Welcome Admin<br><a href="logout.php" class="btn btn-primary">Keluar</a></h1> </body> </html>
File
home-user.php
:<?php session_start(); if(!isset($_SESSION['username'])){ die("<script>window.alert('Oops! Access Failed, sistem logout. Anda harus melakukan Login kembali.'); location=('./')</script>"); } if($_SESSION['hak_akses']!="User"){ die("<script>window.alert('Oops! Access Failed, Anda Tidak Memiliki akses.'); location=('./')</script>"); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="description" content="Sistem login multiuser" /> <meta name="author" content="rap3rr0r"> <title>Home User ..</title> <link rel="stylesheet" href="bootstrap.min.css" /> <link rel="stylesheet" href="style.css" /> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <!-- Google Font --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic"> </head> <body> <h1 class="text-center">Welcome User<br><a href="logout.php" class="btn btn-primary">Keluar</a></h1> </body> </html>
Dan yang terakhir, kita buat file
logout.php
:<?php session_start(); session_destroy(); echo" <script language='javascript'> window.alert('Anda Berhasil Keluar Dari Sistem'); window.location=('index.php') </script> "; ?>
Untuk hak akses jika lebih dari dua seperti tutorial ini, sobat bisa menambahkan kondisi
else if
baru pada file act-login.php
. Dan jangan lupa buat file baru untuk mengarahkan user jika berhasil login sesuai dengan hak akses yang ingin dibuat. Dan 1 lagi, buat user baru di database sesuai dengan hak akses baru tersebut.Contoh untuk menambahkan kondisi baru pada file
act-login.php
dengan hak akses baru yaitu Mahasiswa. Berikut kodenya:if($r['hak_akses']=="Admin"){ header("location:home-admin.php"); } else if($r['hak_akses']=="User"){ header("location:home-user.php"); } else if($r['hak_akses']=="Mahasiswa"){ header("location:home-mahasiswa.php"); }
Yosh, mungkin cukup sekian untuk tutorial Membuat Login Multi User dengan PHP.
Bagi sobat yang ingin mendownload source codenya, sudah saya sediakan.
Download source kode:
SEMOGA BERMANFAAT DAN MEMBANTU
Berkomentarlah sesuai artikel.
No spam, no SARA