-->

Cara Membuat Login Multiuser Dengan PHP MYSQL

Login Session PHP MYSQL

Pendahuluan

Session adalah mekanisme untuk mempertahankan informasi disemua halaman web yang berbeda untuk mengidentifikasi pengguna saat mereka menelusuri situs atau aplikasi. Dalam PHP, session merupakan data yang disimpan dalam suatu server yang dapat digunakan secara global di server tersebut, dimana data tersebut spesifik merujuk ke user/client tertentu. Session juga dapat diartikan sebuah metode untuk meng-authentifikasi atau mengenali apakah seseorang sedang login ke sistem atau tidak.

Membuat Session Login Multiuser

Pada kesempatan kali ini saya ingin berbagi source code membuat session login Multiuser mahasiswa/dosen dari beberapa sumber yang saya pelajari. Pada pembuatan session login mahasiswa/dosen yang sederhana ini kita hanya membuat 2 halaman saja, yaitu halaman login dan halaman index (setelah login).

Pembuatan Database

Disini saya membuat database 'loginsession' dan didalamnya terdapat tabel 'akses', didalam tabel akses memiliki record, seperti contoh gambar di bawah.

Halaman Login

Setelah kita memiliki data dan telah membuat database, selanjutnya kita membuat halaman login.

<?php 
session_start();
$koneksi = mysqli_connect("localhost", "root", "", "loginsession");
?>
<title>Login Session</title>
<h4>Login Form</h4>
<form method="post">
    <input type="text" name="nip" placeholder="Input NIP">
    <input type="password" name="password" placeholder="Input Password">
    <button type="submit" name="login">Login</button>
</form>

<?php
if(isset($_POST['login'])){
    $nip = $_POST['nip'];
    $pw = $_POST['password'];

    // mengecek apakah data yang di input ada di database
    $sql = $koneksi->query("SELECT * FROM akses WHERE nip='$nip' AND password='$pw'");
    $result = mysqli_num_rows($sql);

    if($result == 1){
        $akun = $sql->fetch_assoc();

        if($akun['role'] == "Dosen"){
            $_SESSION['akses'] = $akun;
            echo"<script>alert('Login Berhasil');document.location='index.php';</script>"; 
        }elseif($akun['role'] == "Mahasiswa"){
            $_SESSION['akses'] = $akun;
            echo"<script>alert('Login Berhasil');document.location='index.php';</script>"; 
        }

    }else{
        echo"<script>alert('pastikan nip/password benar dan pastikan anda sudah terdaftar');
        Document.location='login.php';</script>";

    }
}
?>

Halaman Index

<?php
$koneksi = mysqli_connect("localhost", "root", "", "loginsession");
session_start();

if(!isset($_SESSION["akses"])){
    header("location:login.php");
}

$id = $_SESSION['akses']['id'];
$sql = $koneksi->query("SELECT * FROM akses WHERE id='$id'");
$data = $sql->fetch_assoc();
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Session</title>
</head>
<body>
    <h4>LOGIN SESSION DOSEN/MAHASISWA MENGGUNAKAN PHP-MYSQL</h4>
    
    Halo <b><?= $data['nama'];?></b>, Anda Login Sebagai <b><?= $_SESSION['akses']['role'];?></b>, Dengan NIP <b><?= $data['nip'];?></b><br>
    <ul>
        <?php
            if($_SESSION["akses"]['role']=="Dosen"){
                echo"<li>Ini Adalah Hak Akses Dosen</li>";
                echo"<li><a href='logout.php'>Logout</a></li>";
            }else{
                echo"<li>Ini Adalah Hak Akses Mahasiswa</li>";
                echo"<li><a href='logout.php'>Logout</a></li>";
            }
        ?>
        
    </ul>

Pada Halaman index ini user tidak bisa mengakses sebelum melakukan proses login, kondisi ini terdapat pada code;
if(!isset($_SESSION["akses"])){
    header("location:login.php");
}
Dimana jika tidak ada session akses, maka akan di pindahkan ke halaman login.php.

Sedangkan pada kondisi;
if($_SESSION["akses"]['role']=="Dosen"){
	echo"<li>Ini Adalah Hak Akses Dosen</li>";
	echo"<li><a href='logout.php'>Logout</a></li>";
}else{
	echo"<li>Ini Adalah Hak Akses Mahasiswa</li>";
	echo"<li><a href='logout.php'>Logout</a></li>";
}
Dimana jika session akses dan rolenya 'Dosen' maka akan menampilkan output 'ini adalah hak akses dosen' jika bukan Dosen, maka yang di tampilkan adalah 'ini adalah hak akses mahasiswa' .
Untuk tampilan akhirnya bisa di lihat pada gambar di bawah.

-Tambahan-
Halaman Logout
<?php
session_start();
$_SESSION = [];
session_unset();
session_destroy();
header("location:login.php");
?>

Nah mungkin sekian penjelasan singkat dari saya, kurang lebihnya mohon di kritik pada kolom komentar di bawah.

Download Source Code

Pustaka