SESSION
Session adalah mekanisme penyimpanan informasi ke dalam variabel agar bisa digunakan di lebih dari satu halaman. Data session ini akan ditangani oleh super global yaitu $_SESSION dimana untuk menjalankanya harus diawali dengan session_start()
Kita langsung saja implementasi pada sistem login yang sudah dibuat diatas, kita akan membuat hlaman login akan tampil pertama kali ketika program dijalankan, langkah pertama silahkan buka halaman login.php. Kita disini akan membuat session terlebih dahulu dimana kit akan memastikan user tidak boleh mengakses halaman lain selain login.php, silhahkan tambahkan kode dibawah ini pada login.php
<?php
session_start();
if ($_SESSION["login"]) {
header("Location: index.php");
exit;
}
require 'function.php';
if (isset($_POST["login"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$result = mysqli_query($db, "SELECT * FROM user WHERE username = '$username' ");
// cek username
if (mysqli_num_rows($result) === 1) {
// cek pssword
$row = mysqli_fetch_assoc($result);
if (password_verify($password, $row["password"])) {
//set session
$_SESSION["login"] = true;
header("Location: index.php");
exit;
}
}
$error = true;
}
?>
<!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>Halaman Login</title>
</head>
<body>
<h1>LOGIN</h1>
<?php if (isset($error)) : ?>
<p style="color:red;">username / password salah</p>
<?php endif ?>
<form action="" method="POST">
<ul>
<li>
<label for="username">Username :</label>
<input type="text name" name="username" id="username">
</li>
<li>
<label for="password">Password :</label>
<input type="password" name="password" id="password">
</li>
<li>
<button type="submit" name="login"> Login</button>
</li>
</ul>
</form>
</body>
</html>
Lalu kemudian pada halaman index.php silahkan cek apakah ada session login jik ada maka tampilkan index.php jika tidak arahkan user pada login.php, untuk lebih jelas perhatikan code dibawah ini :
<?php
session_start();
if (!$_SESSION["login"]) {
header("Location: login.php");
exit;
}
require 'function.php';
$mahasiswa = query("SELECT * FROM mahasiswa");
// ketika tombol cari di klik maka akan menampilkan hasil data yang dicari
if (isset($_POST["cari"])) {
$mahasiswa = cari($_POST["keyword"]);
}
?>
<!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>Admin Data Mahasiswa</title>
</head>
<body>
<h1>Daftar Mahasiswa</h1>
<a href="tambah.php">Tambah Data</a>
<br><br>
<form action="" method="POST">
<input type="text" name="keyword" size="40" autofocus placeholder="Cari data yang diinginkan.." autocomplete="off">
<button type="submit" name="cari"> Search</button>
</form>
<br>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th>No.</th>
<th>Aksi</th>
<th>Photo</th>
<th>Nama</th>
<th>NPM</th>
<th>Jurusan</th>
<th>Email</th>
</tr>
<?php $i = 1; ?>
<?php foreach ($mahasiswa as $row) : ?>
<tr>
<td> <?= $i; ?> </td>
<td>
<a href="ubah.php?id=<?php echo $row["id"]; ?>">Ubah</a> |
<a href="hapus.php?id=<?php echo $row["id"]; ?>" onclick="return confirm('Yakin Ingin Menghapus Data'); ">Hapus</a>
</td>
<td><img src="img/<?php echo $row["gambar"] ?>" width="50"></td>
<td><?php echo $row["nama"] ?></td>
<td><?php echo $row["npm"] ?></td>
<td><?php echo $row["jurusan"] ?></td>
<td><?php echo $row["email"] ?></td>
</tr>
<?php $i++; ?>
<?php endforeach; ?>
</table>
</body>
</html>
Lakukan hal yang sama pada halaman tambah.php, hapus.php dan ubah.php, supaya halaman tersebut tidak bisa di akses sebelum user login.
Selanjutnya jika sudah tidak bisa akses halaman sebelum lgin, makan ketika login kita perlu membuat sistem bisa logout, caranya tambahkan halaman logout.php dan isi sesuai dengan code dibawah ini :
<?php
session_start();
$_SESSION = [];
session_unset();
session_destroy();
header("Location : login.php");
exit;
?>
Setelah itu tambahkan button logout pada halaman index.php, seperti code dibawah ini :
<a href="logout.php"> Logout</a>





