Membuat Login Multi User Dengan PHP dan MySQLi

Hal yang sangat pertama kita buat adalah database yang berfungsi sebegai menampung data kita nantinya dan disini saya mengunakan database MYSQL
Membuat Login Multi User Dengan PHP dan MySQLi

Tutorial PHP Pemula Part 19 : Membuat Login Multi User Dengan PHP dan MySQLi

Tutorial PHP Pemula Part 19 : Membuat Login Multi User Dengan PHP dan MySQLi -  Hello everyone selamat datang kembali diwebsite saya belajarwithib.my.id, pada seri kali ini kita akan masih mempelajari PHP Dasar  Membuat Login Multi User Dengan PHP dan MySQLi. 

Terima kasih buat kamu semua yang masih mengikuti sampai seri ini “Membuat Login Multi User Dengan PHP dan MySQLi “ dan seri ini juga masih ada hubungannya dengan seri “Cara Membuat Login PHP Dengan MD5 Dan Menggunakan Session”.

Sebelumnya saya minta maaf karena lama sekali tidak update karena sibuk dengan ujian sekolah dan project dadakan belum lagi sakit yang belum kunjung sembuh dan selagi menunggu rapot saya mengisinya dengan membuat artikel melanjutkan seri  PHP.

Langsung simak dan praktekan dirumah ya guys!

Membuat Login Multi User Dengan PHP dan MySQLi

Membuat Database Untuk Menyimpan Data User

Hal yang sangat pertama kita buat adalah database yang berfungsi sebegai menampung data kita nantinya dan disini saya mengunakan database MYSQL

1.Membuat Database “belajarwithib”

Ketikan Perintah di SQL Ketika kamu membuka Localhost/phpmyadmin


create database belajarwithib;

2.Membuat Table “user”  di Dalam Database

Sama seperti membuat database namun kamu klik atau pilih databasenya dulu baru pilih “new table” setelah itu contohlah seperti foto dibawah ini :

Membuat Login Multi User Dengan PHP dan MySQLi

3.Memasukan Data Kedalam Table “User”

Setelah berhasil membuat tablenya, kamu bisa langsungisikan data kedalam table tersebut dan salin code dibawah ini lalu paste dan kirim di SQLnya


INSERT INTO `user` (`id_user`, `nama_lengkap`, `username`, `password`, `level`) VALUES (NULL, 'Ilham Budiawan Sitorus', 'admin', MD5('admin123'), 'admin'), (NULL, 'Sagiri Izumi', 'moderator', MD5('moderator123'), 'moderator');

Atau kamu bisa juga meniru contoh dibawah ini :

Membuat Login Multi User Dengan PHP dan MySQLi

Struktur File 

Disini saya juga akan menjelaskan struktur file dari mini project kita diseri “Membuat Login Multi User Dengan PHP dan MySQLi” karena nantinya agar kamu tidak bingung dan paham akan membuat filenya dan harus menyimpannya kemana-mana saja nantinya.

Untuk menyimpan filenya tetap didalam htdoc namun kamu buat folder baru dengan nama “bwi” atau terserah kamu gimana enaknya saja dan struktur filenya seperti dibawah :

Membuat Login Multi User Dengan PHP dan MySQLi

Didalam folder bwi, saya membuat folder lagi dengan nama “admin” dan “moderator” yang dimana folder tersebut akan menyimpan masing-masing dashboard atau tampilan yang akan ditampil untuk masing-masing level nantinya.

Membuat Koneksi Kedatabase

Karena kita menggunakan database, alangkah baiknya kamu harus membuat koneksinya terlebih dahulu.

Koneksi.php


<?php
$host = "localhost";
$user = "root";
$pass = "";
$db   = "belajarwithib";

$con = mysqli_connect($host,$user,$pass,$db);

if (!$con) {
	die("Koneksi gagal:".mysqli_connect_error());
}
?>


Penjelasan 


$host = "localhost";
$user = "root";
$pass = "";
$db   = "belajarwithib";

Pada code diatas $host itu nama host/server yang kita pakai, $user itu nama user yang akan digunakan namun secara default itu root, $pass itu jika user nya menggunakan password untuk mengakses data didalamnya maka harap disini sesuai dengan passwordnya namun jika tidak menggunakan password maka kosongkan saja, $db itu adalah nama database yang ingin kita akses.


$con = mysqli_connect($host,$user,$pass,$db);

Untuk menghubungkan PHP dengan MySQLi , saya menggunakan fungsi mysqli_connect() dengan parameter alamat server, user, password, dan nama database.

Membuat Tampilan Sederhana Untuk Form Login

Saya membuat contoh tampilan sederhana saja karena saya kurang pandai dalam mendesain form login mungkin setelah mengikuti tutorial kali ini kamu bisa berkreasi sendiri gimana bagusnya untuk tampilan login ini.

Buatlah file dengan nama index.php didalam folder bwi dan Ketikan pada code editormu code dibawah ini :

Index.php


<html>
<head>
	<title>Membuat Login Multi User Dengan PHP dan MySQLi - www.belajarwithib.my.id</title>
</head>
<body>
	<center><h3>Membuat Login Multi User Dengan PHP dan MySQLi <br/> www.belajarwithib.my.id</h3>
	<?php
	if(isset($_GET['alert'])){
		if($_GET['alert']=="gagal"){
			echo "<p>Maaf! Username & Password Salah.</p>";
		}else if($_GET['alert']=="belum_login"){
			echo "<p>Anda Harus Login Terlebih Dulu!</p>";
		}else if($_GET['alert']=="logout"){
			echo "<p>Anda Telah Logout!</p>";
		}
	}
	?>
	</center>
	<center>
	<table>
		<form action="aksi.php" method="post">
			<tr>
				<td>
					<label>Username</label>
				</td>
				<td>
					<input type="text" name="username" placeholder="Username .." required="required">
				</td>
			</tr>
			
			<tr>
				<td>
					<label>Password</label>
				</td>
				<td>
					<input type="password" name="password" placeholder="Password .." required="required">
				</td>
			</tr>
			
			<tr>
				<td><input type="submit" class="tombol_login" value="login"></td>
				<td></td>
			</tr>
		</div>
	</table>
</center>
</body>
</html>

Jika sudah selesai mengetik code diatas maka hasilnya kurang lebih akan seperti foto dibawah ini :

Membuat Login Multi User Dengan PHP dan MySQLi

Memproses Data Yang Terkirim Dari Form Login

Coba kamu lihat pada code dibawah ini, itu berfungsi sebagai aksi untuk memproses datanya dengan method POST dan memproses datanya pada file aksi.php


<form action="aksi.php" method="post">

Nah setelah kita berhasil mengirimkan datanya maka kita akan memproses datanya pada file aksi.php dan ketikanlah code dibawah ini pada code editor kesayangan anda lalu jangan lupa buat file aksi.php pada folder bwi 

Aksi.php


<?php 
// berfungsi mengaktifkan session
session_start();
 
// berfungsi menghubungkan koneksi ke database
include 'koneksi.php';
 
// berfungsi menangkap data yang dikirim
$user = $_POST['username'];
$pass = md5($_POST['password']);
 
// berfungsi menyeleksi data user dengan username dan password yang sesuai
$sql = mysqli_query($con,"SELECT * FROM user WHERE username='$user' AND password='$pass'");
//berfungsi menghitung jumlah data yang ditemukan
$cek = mysqli_num_rows($sql);

// berfungsi mengecek apakah username dan password ada pada database
if($cek > 0){
	$data = mysqli_fetch_assoc($sql);

	// berfungsi mengecek jika user login sebagai admin
	if($data['level']=="admin"){
		// berfungsi membuat session
		$_SESSION['nama'] =  $data['nama_lengkap'];
		$_SESSION['level'] = "admin";
		//berfungsi mengalihkan ke halaman admin
		header("location:admin/index.php");
	// berfungsi mengecek jika user login sebagai moderator
	}else if($data['level']=="moderator"){
		// berfungsi membuat session
		$_SESSION['nama'] = $data['nama_lengkap'];
		$_SESSION['level'] = "moderator";
		// berfungsi mengalihkan ke halaman moderator
		header("location:moderator/index.php");

	}else{
		// berfungsi mengalihkan alihkan ke halaman login kembali
		header("location:index.php?alert=gagal");
	}	
}else{
	header("location:index.php?alert=gagal");
}
?>

Penjelasan

Kalau dipikir-pikir dan dibaca seri “Cara Membuat Login PHP Dengan MD5 Dan Menggunakan Session” karena hanya sedikit perbedaannya dengan itu hanya sedikit bermain logika saja . kalau untuk penjelasan lebih lengkap dan jelas bisa kamu baca artikel “Cara Membuat Login PHP Dengan MD5 Dan Menggunakan Session”.

Disini saya hanya menjelaskan bagian yang beda saja dan perhatikanlah code dibawah ini :


// berfungsi mengecek apakah username dan password ada pada database
if($cek > 0){
	$data = mysqli_fetch_assoc($sql);

	// berfungsi mengecek jika user login sebagai admin
	if($data['level']=="admin"){
		// berfungsi membuat session
		$_SESSION['nama'] =  $data['nama_lengkap'];
		$_SESSION['level'] = "admin";
		//berfungsi mengalihkan ke halaman admin
		header("location:admin/index.php");
	// berfungsi mengecek jika user login sebagai moderator
	}else if($data['level']=="moderator"){
		// berfungsi membuat session
		$_SESSION['nama'] = $data['nama_lengkap'];
		$_SESSION['level'] = "moderator";
		// berfungsi mengalihkan ke halaman moderator
		header("location:moderator/index.php");

	}else{
		// berfungsi mengalihkan alihkan ke halaman login kembali
		header("location:index.php?alert=gagal");
	}	
}else{
	header("location:index.php?alert=gagal");
}

Disinilah kita bermain logika nya, dia akan mengecek jika levelnya admin maka dia akan diarahkan kehalaman admin namun jika dia moderator maka dia akan dialihkan kehalaman moderator dan jika kedua nya tidak ada yang cocok atau password nya salah maka dia akan dikembalikan ke halaman login.

Membuat Halaman Admin

Tuliskan code dibawah ini dicode editor kesayangan kamu dan buatlah folder baru dengan nama “admin” dan didalam folder admin kamu buatlah file dengan nama “index.php” : 

Admin/index.php


<?php 
session_start();
//berfungsi mengecek apakah user sudah login atau belum
if($_SESSION['level']==""){
	header("location:../index.php?alert=belum_login");
}

?>
<!DOCTYPE html>
<html>
<head>
	<title>Halaman admin - www.belejarwithib.my.id</title>
</head>
<body>
	<h1>Halaman Admin</h1>

	<p>Halo <b><?php echo $_SESSION['nama']; ?><br></b> Anda telah login sebagai <b><?php echo $_SESSION['level']; ?></b>.</p>
	<a href="logout.php">logout</a>
</body>
</html>

Membuat Halaman Moderator

Tuliskan code dibawah ini dicode editor kesayangan kamu dan buatlah folder baru dengan nama “moderator” dan didalam folder moderator kamu buatlah file dengan nama “index.php” : 

Moderator /index.php


<?php 
session_start();
//berfungsi mengecek apakah user sudah login atau belum
if($_SESSION['level']==""){
	header("location:../index.php?alert=belum_login");
}

?>
<!DOCTYPE html>
<html>
<head>
	<title>Halaman moderator - www.belejarwithib.my.id</title>
</head>
<body>
	<h1>Halaman moderator</h1>

	<p>Halo <b><?php echo $_SESSION['nama']; ?><br></b> Anda telah login sebagai <b><?php echo $_SESSION['level']; ?></b>.</p>
	<a href="logout.php">logout</a>
</body>
</html>

Membuat Logout

Untuk membuat logout sangatlah mudah, buatlah file baru dengan nama “logout.php” didalam masing-masing folder “admin” dan “moderator” dan ketiklah code dibawah ini


<?php 
// berfungsi mengaktifkan session
session_start();
//berfungsi menghapus semua session
session_destroy();
// berfungsi mengalihkan halaman ke halaman login
header("location:../index.php?alert=logout");
?>

Sampai disini sudah selesai dan sekarang kita masuk dalam tahap testing mini project mengenai login multi user.

Membuat Login Multi User Dengan PHP dan MySQLi
Disini saya mencoba untuk login dengan user admin.
Username : admin
Password : admin123
dan
Username : moderator
Password : moderator123

Membuat Login Multi User Dengan PHP dan MySQLi
Jika berhasil login menggunakan akun admin

Membuat Login Multi User Dengan PHP dan MySQLi
Jika berhasil login menggunakan akun moderator

Penutupan

Cukup mudah bukan untuk membuat login multi user dengan php dan mysqli kamu hanya bermain logika saja kawan-kawan ku sekalian dan ini adalah contoh yang sangat simple dan mungkin bisa kamu kembangkan lagi nantinya.

Semoga Bermanfaat!!