Tutorial Login Multi User dengan PHP dan MySQL

0
214

Dibawah ini merupakan tutorial membuat login multi user dengan PHP dan MySQL. Login multi user digunakan untuk membuat hak akses untuk masing masing user.

Step 1 – MEMPERSIAPKAN DATABASE DAN TABEL

Pertama yang perlu anda siapkan adalah database dan tabel untuk tutorial kali ini. Seperti yang saya buat dibawah ini.

Jalankan mySQL anda, lalu tuliskan sintaks SQL berikut untuk membuat database dan tabel dengan nama MYDB dan USERS.

Create database MYDB;

 

Lalu aktifkan database MYDB dengan menuliskan perintah berikut:

Use MYDB;

 

Tuliskan sintaks SQL berikut untuk membuat tabel USERS

Create table USERS (

id int not null auto_increment primary key,

nama varchar(200),

username varchar(200) not null,

password varchar(200),

hak_akses(‘admin’,’member’)

);

 

Tuliskan juga sintaks untuk memasukkan data tabel, contoh nya :

insert into users(nama, username, password, hak_akses) values('Admin','admin',md5('admin'), 'admin');

insert into users(nama, username, password, hak_akses) values('Member','member',md5('member'), 'member');

 

*KETERANGAN: Anda telah memiliki sebuah database dan tabel. Database dan tabel tersebut akan digunakan untuk membuat login di step berikutnya.

Step 2 – MEMBUAT KONEKSI ANTARA PHP DAN MYSQL

Dalam hal ini kita membutuhkan koneksi di PHP agar dapat bekerja dengan server MySQL.

Sintaks untuk membuat koneksi di PHP adalah seperti berikut:

<?php
$url = 'http://localhost/login-multi';
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'mydb';

$conn = mysqli_connect($host, $username, $password, $dbname);

if (mysqli_connect_errno()) {
  echo "koneksi gagal";
} ?>

 

Step 3 – MEMBUAT FORM LOGIN

Step selanjutnya kita membuat form login untuk memasukkan username dan password user.

Tuliskan sintaks seperti berikut ini.

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
  <title>Form Login Multi User</title>
</head>
<body>
  <h2>Form Login</h2>
<form action="do_login.php" method="post">
  <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>&nbsp;</td>
      <td><input type="submit" name="btnSubmit" value="Login"></td>
    </tr>
  </table>
</form>
</body>
</html>

 

Simpan sintaks tersebut dengan nama file login.php

Step 4 – MEMBUAT PROSES LOGIN MULTI USER

Step kali ini kita membuat proses untuk daftar nya. Tulis sintaks berikut:

<?php
session_start();

if (!isset($_POST['username'])) {
  header('location: login.php');
  exit();
}

$error = '';

require 'koneksi.php';

$username = trim($_POST['username']);
$password = trim($_POST['password']);

if (strlen($username) < 2) {
  $error = 'username tidak boleh kosong';
} else if (strlen($password) < 2) {
  $error = 'password tidak boleh kosong';
} else {
  $username = $conn->escape_string($username);
  $password = $conn->escape_string($password);

  $password = md5($password);

  $sql = "select nama, hak_akses from users where username = '$username' and password = '$password' limit 1";

  $query = $conn->query($sql);

  if ($query->num_rows == 1) {
    $row = $query->fetch_assoc();

    $_SESSION['nama_user'] = $row['nama'];
    $_SESSION['akses'] = $row['hak_akses'];

    if ($row['hak_akses'] = 'admin') {
      $_SESSION['saya_admin'] = 'TRUE';
    }

    header('location:'.$url.'/'.$_SESSION['akses'].'/');
    exit();
  } else {
    $error = 'username dan password tidak ditemukan';
  }
}

if (!empty($error)) {
  $_SESSION['error'] = $error;
  header('location: login.php');
  exit();
} ?>

 

Simpan dengan nama file do_login.php

*KETERANGAN: Pastikan data yang dimasukkan di dalam sintaks tersebut sama seperti yang ada di tabel database.

Step 5 – MEMBUAT FOLDER ADMIN, MEMBER DAN HALAMAN ADMIN,MEMBER

Selanjutnya kita membuat folder admin dan member. Tuliskan masing masing sintaks berikut:

<?php
session_start();
if (!isset($_SESSION['saya_admin'])) {
  header('location:./../'.$_SESSION['akses']);
  exit();
}

$nama = (isset($_SESSION['nama_user'])) ? $_SESSION['nama_user'] : '';
?>
<!DOCTYPE html>
<html>
<head>
  <title>Halaman Admin</title>
</head>
<body>
  <h2>Dashboard <?php echo $nama; ?></h2>
  [<a href="./../logout.php">Logout</a>]
</body>
</html>

 

Simpan dengan nama file index.php dan simpan di folder admin

<?php
session_start();


if (!isset($_SESSION['nama_user'])) {
  header('location:./../'.$_SESSION['akses']);
  exit();
} else {
  $nama = $_SESSION['nama_user'];
} 
?>
<!DOCTYPE html>
<html>
<head>
  <title>Halaman Member</title>
</head>
<body>
<h2>Dashboard <?php echo $nama; ?></h2>
[<a href="./../logout.php">Logout</a>]
</body>
</html>

 

Simpan dengan nama file index.php dan simpan di folder member

Step 6 – MEMBUAT FILE LOGOUT

Untuk file logout.php silahkan tuliskan sintaks seperti berikut.

<?php
session_start();
session_destroy();
header('location:login.php');
exit();
?>

 

Nah sekarang anda sudah berhasil membuat Login multi user dengan PHP. Selamat belajar.

Terima Kasih telah membaca.

***PIU***

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here