Cara Membuat Login Multi User Session Dengan PHP dan MySQLi - Andrie Kristianto - Info
News Update
Loading...

Rabu, 18 September 2019

Cara Membuat Login Multi User Session Dengan PHP dan MySQLi

Andrie Kristianto - Cara Membuat Login Multi User Session Dengan PHP dan MySQLi. Login multi user merupakan proses login yang memiliki validasi level dari seorang user saat login untuk mengkategorikan akses pada sebuah halaman di website. Seperti contoh saja akses admin, user, super admin, dan karyawan pasti memiliki hak akses yang berbeda-beda.

Hanya dengan 1 form login saja dapat login dengan user yang berbeda dan hak akses yang berbeda-beda pula. Jika user berhasil login maka user akan diarahkan ke halaman yang sudah diatur pada dashboardnya masing-masing.

Misalnya saja user login sebagai admin maka akan diarahkan ke halaman dashboard admin, jika user login sebagai pegawai maka akan diarahkan ke halaman dashboard khusus untuk pegawai, atau jika user login sebagai super admin maka user tersebut dapat mengakses keseluruhan sistem.

Langkah Pertama, Membuat database multi user level.
Sekarang kita akan membuat database baru dengan nama " db_andrie ", kemudian buat table " user " dengan column sebagai berikut.



Lalu kemudian kita isikan beberapa data user yang sudah dibuat sebelumnya, disini kita akan memberikan hak akses login untuk 3 user diantaranya 1 user dengan level Super Admin, user ke 2 dengan level Penulis, dan user ketiga sebagai pengunjung.


Disini kita sudah memiliki 3 user dengan level atau hak akses yang berbeda-beda, yang dimana Andrie Kristianto sebagai Super Admin, Blogger sebagai penulis, dan Mas Andri sebagai pengunjung. Untuk masalah database sudah selesai, selanjutnya proses codingnya.

Jangan lupa untuk memasukkan file kedalam htdocs untuk melihat demo secara langsungnya, gunakan code editor favorit Anda. Disini saya menggunakan Visual Studio Code sebagai penerapan code yang akan dibuat.

File yang akan kita buat adalah:
- index.php
- style.css
- cek_login.php
- halaman_admin
- halaman_Pegawai
- halaman_Pengurus
- koneksi.php
- logout.php

Langkah Selanjutnya, buat file dengan nama index.php. Halaman index ini merupakan halaman login untuk user yang sudah dibuat sebelumnya.
 <!DOCTYPE html>
<html>
<head>
 <title>Membuat Login Multi User Level Dengan PHP dan MySQLi - www.malasngoding.com</title>
 <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
 
 <h1>Membuat Login Multi User Level Dengan PHP dan MySQLi <br/> www.malasngoding.com</h1>

 <?php 
 if(isset($_GET['pesan'])){
  if($_GET['pesan']=="gagal"){
   echo "<div class='alert'>Username dan Password tidak sesuai !</div>";
  }
 }
 ?>
 
 <div class="kotak_login">
  <p class="tulisan_login">Silahkan login</p>
 
  <form action="cek_login.php" method="post">
   <label>Username</label>
   <input type="text" name="username" class="form_login" placeholder="Username .." required="required">
 
   <label>Password</label>
   <input type="password" name="password" class="form_login" placeholder="Password .." required="required">
 
   <input type="submit" class="tombol_login" value="LOGIN">
 
   <br/>
   <br/>
   <center>
    <a class="link" href="https://www.malasngoding.com">kembali</a>
   </center>
  </form>
  
 </div>
 
 
</body>
</html> 

Buat file style.css
 body{
 font-family: sans-serif;
 background: #ebf9fb;
}
 
h1{
 text-align: center;
 /*ketebalan font*/
 font-weight: 300;
}
 
.tulisan_login{
 text-align: center;
 /*membuat semua huruf menjadi kapital*/
 text-transform: uppercase;
}
 
.kotak_login{
 width: 350px;
 background: white;
 /*meletakkan form ke tengah*/
 margin: 80px auto;
 padding: 30px 20px;
 box-shadow: 0px 0px 100px 4px #d6d6d6;
}
 
label{
 font-size: 11pt;
}
 
.form_login{
 /*membuat lebar form penuh*/
 box-sizing : border-box;
 width: 100%;
 padding: 10px;
 font-size: 11pt;
 margin-bottom: 20px;
}
 
.tombol_login{
 background: #2aa7e2;
 color: white;
 font-size: 11pt;
 width: 100%;
 border: none;
 border-radius: 3px;
 padding: 10px 20px;
}
 
.link{
 color: #232323;
 text-decoration: none;
 font-size: 10pt;
}
 
.alert{
 background: #e44e4e;
 color: white;
 padding: 10px;
 text-align: center;
 border:1px solid #b32929;
} 

Untuk halaman login (index.php) sudah selesai, langkah selanjutnya adalah membuat fungsi pada halaman login yang sudah dibuat agar dapat nyambung atau terkoneksi ke dalam database yang sudah dibuat sebelumnya.

Perhatikan pada syntax form login yang sudah dibuat sebelumnya, kita telah menetapkan file yang akan mengeksekusi atau memproses form login ini adalah file cek_login.php.

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

Jadi sekarang kita buat lagi sebuah file php dengan nama cek_login.php, karena sistem ini akan terkoneksi dengan database. Maka dari itu buat file koneksi.php untuk mengkoneksikan form kedalam database sebelumnya:
 <?php 
$koneksi = mysqli_connect("localhost","root","","multi_user");
 
// Check connection
if (mysqli_connect_errno()){
 echo "Koneksi database gagal : " . mysqli_connect_error();
}
 
?> 

Lalu setelah itu membuat file cek_login.php
 <?php 
// mengaktifkan session pada php
session_start();
 
// menghubungkan php dengan koneksi database
include 'koneksi.php';
 
// menangkap data yang dikirim dari form login
$username = $_POST['username'];
$password = $_POST['password'];
 
 
// menyeleksi data user dengan username dan password yang sesuai
$login = mysqli_query($koneksi,"select * from user where username='$username' and password='$password'");
// menghitung jumlah data yang ditemukan
$cek = mysqli_num_rows($login);
 
// cek apakah username dan password di temukan pada database
if($cek > 0){
 
 $data = mysqli_fetch_assoc($login);
 
 // cek jika user login sebagai admin
 if($data['level']=="admin"){
 
  // buat session login dan username
  $_SESSION['username'] = $username;
  $_SESSION['level'] = "admin";
  // alihkan ke halaman dashboard admin
  header("location:halaman_admin.php");
 
 // cek jika user login sebagai pegawai
 }else if($data['level']=="pegawai"){
  // buat session login dan username
  $_SESSION['username'] = $username;
  $_SESSION['level'] = "pegawai";
  // alihkan ke halaman dashboard pegawai
  header("location:halaman_pegawai.php");
 
 // cek jika user login sebagai pengurus
 }else if($data['level']=="pengurus"){
  // buat session login dan username
  $_SESSION['username'] = $username;
  $_SESSION['level'] = "pengurus";
  // alihkan ke halaman dashboard pengurus
  header("location:halaman_pengurus.php");
 
 }else{
 
  // alihkan ke halaman login kembali
  header("location:index.php?pesan=gagal");
 } 
}else{
 header("location:index.php?pesan=gagal");
}
 
?> 

Sebenarnya caranya sama saja dengan membuat login biasa. hanya saja di sini kita sedikit bermain dengan logika. Di sini kita memeriksa apakah berhasil login, jika berhasil login kita cek lagi level yang dimiliki oleh user yang berhasil login tersebut. apakah level nya. jika level nya adalah Super Admin, maka akan kita buat session level nya “Super Admin” dan kita alihkan halaman nya ke halaman halaman_admin.php, jika level user yang login adalah “Penulis”, maka akan kita buat session level Penulis dan kita alihkan halaman nya ke halaman halaman_penulis.php. begitu juga dengan level pengunjung.

Langkah Selanjutnya, kita akan membuat halaman masing-masing usernya yaitu file Halaman_admin.php, halaman_penulis.php, dan halaman_pengunjung.php.

Halaman_admin.php
 <!DOCTYPE html>
<html>
<head>
 <title>Halaman admin - www.malasngoding.com</title>
</head>
<body>
 <?php 
 session_start();
 
 // cek apakah yang mengakses halaman ini sudah login
 if($_SESSION['level']==""){
  header("location:index.php?pesan=gagal");
 }
 
 ?>
 <h1>Halaman Admin</h1>
 
 <p>Halo <b><?php echo $_SESSION['username']; ?></b> Anda telah login sebagai <b><?php echo $_SESSION['level']; ?></b>.</p>
 <a href="logout.php">LOGOUT</a>
 
 <br/>
 <br/>
 s
 <a><a href="https://www.malasngoding.com/membuat-login-multi-user-level-dengan-php-dan-mysqli">Membuat Login Multi Level Dengan PHP</a> - www.malasngoding.com</a>
</body></html> 

halaman_pegawai.php
 <!DOCTYPE html>
<html>
<head>
 <title>Halaman Pegawai - www.malasngoding.com</title>
</head>
<body>
 <?php 
 session_start();
 
 // cek apakah yang mengakses halaman ini sudah login
 if($_SESSION['level']==""){
  header("location:index.php?pesan=gagal");
 }
 
 ?>
 <h1>Halaman Pegawai</h1>
 
 <p>Halo <b><?php echo $_SESSION['username']; ?></b> Anda telah login sebagai <b><?php echo $_SESSION['level']; ?></b>.</p>
 <a href="logout.php">LOGOUT</a>
 
 <br/>
 <br/>
 
 <a><a href="https://www.malasngoding.com/membuat-login-multi-user-level-dengan-php-dan-mysqli">Membuat Login Multi Level Dengan PHP</a> - www.malasngoding.com</a>
</body>
</html> 

Halaman_pengurus.php

<!DOCTYPE html>
<html>
<head>
 <title>Halaman Pengurus - www.malasngoding.com</title>
</head>
<body>
 <?php 
 session_start();
 
 // cek apakah yang mengakses halaman ini sudah login
 if($_SESSION['level']==""){
  header("location:index.php?pesan=gagal");
 }
 
 ?>
 <h1>Halaman Pengurus</h1>
 
 <p>Halo <b><?php echo $_SESSION['username']; ?></b> Anda telah login sebagai <b><?php echo $_SESSION['level']; ?></b>.</p>
 <a href="logout.php">LOGOUT</a>
 
 <br/>
 <br/>
 
 <a><a href="https://www.malasngoding.com/membuat-login-multi-user-level-dengan-php-dan-mysqli">Membuat Login Multi Level Dengan PHP</a> - www.malasngoding.com</a>
</body>
</html>

Selesai, terakhir kita tinggal membuat logout.php
 <?php 
// mengaktifkan session php
session_start();
 
// menghapus semua session
session_destroy();
 
// mengalihkan halaman ke halaman login
header("location:index.php");
?>

Selesai. Selamat Mencoba
sumber: https://malasngoding.com/membuat-login-multi-user-level-dengan-php-dan-mysqli/

Share with your friends

How To Use
  • Put the link on the
  • Generate Link box with http:// or https://
  • Use  CTRL + V  on keyboard to put the link.
  • Click Generate button to get encrypted link.
  • Click Copy URL button.
  • Done