Tutorial Membuat Login Multi User PHP MySqli

Anonymous
Berikut adalah langkah-langkah dalam membuat multi role user (admin & user) dengan PHP dan MySQLi:

1. Buat database dan tabel
  - Buat database dengan nama "multirole"
  - Buat tabel dengan nama "users" dengan kolom-kolom sebagai berikut:
    - id (primary key)
    - username
    - password
    - role (admin atau user)

2. Buat file database.php
  - Isi file dengan kode untuk menghubungkan ke database dan menyimpan informasi konfigurasi

```
<?php
// konfigurasi database
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "multirole";

// menghubungkan ke database
$conn = mysqli_connect($db_host $db_user $db_pass $db_name);

// mengecek koneksi
if (!$conn) {
    die("Koneksi gagal: " . mysqli_connect_error());
}
?>
```

3. Buat file login.php
  - Isi file dengan form login

```
<?php
session_start();
include_once("database.php");

// cek apakah user sudah login atau belum
if (isset($_SESSION['username'])) {
    if ($_SESSION['role'] == "admin") {
        header("Location: admin/dashboard.php");
    } else {
        header("Location: home.php");
    }
}

if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // query untuk mencari user
    $sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
    $result = mysqli_query($conn $sql);

    if (mysqli_num_rows($result) == 1) {
        $user = mysqli_fetch_assoc($result);
        $_SESSION['username'] = $user['username'];
        $_SESSION['role'] = $user['role'];

        if ($user['role'] == "admin") {
            header("Location: admin/dashboard.php");
        } else {
            header("Location: home.php");
        }
    } else {
        $error = "Username atau password salah.";
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>
<body>
    <h1>Login</h1>

    <?php if (isset($error)) { ?>
        <p><?php echo $error; ?></p>
    <?php } ?>

    <form method="post">
        <label>Username:</label>
        <input type="text" name="username" required><br>

        <label>Password:</label>
        <input type="password" name="password" required><br>

        <input type="submit" name="submit" value="Login">
    </form>
</body>
</html>
```

4. Buat file logout.php
  - Isi file dengan kode untuk menghapus session dan mengarahkan ke halaman login

```
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
?>
```

5. Buat file admin/dashboard.php
  - Isi file dengan halaman dashboard untuk admin

```
<?php
session_start();

if (!isset($_SESSION['username']) || $_SESSION['role'] != "admin") {
    header("Location: ../login.php");
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Dashboard Admin</title>
</head>
<body>
    <h1>Dashboard Admin</h1>

    <p>Selamat datang <?php echo $_SESSION['username']; ?>!</p>

    <a href="../logout.php">Logout</a>
</body>
</html>
```

6. Buat file home.php
  - Isi file dengan halaman utama untuk user

```
<?php
session_start();

if (!isset($_SESSION['username']) || $_SESSION['role'] != "user") {
    header("Location: login.php");
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>Home</h1>

    <p>Selamat datang <?php echo $_SESSION['username']; ?>!</p>

    <a href="logout.php">Logout</a>
</body>
</html>
```

Dengan langkah-langkah di atas Anda sudah berhasil membuat multi role user dengan PHP dan MySQLi. Silakan coba kode-kode tersebut dan sesuaikan dengan kebutuhan Anda.

Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.