Membuat Batas Waktu Session di PHP

Membuat Batas Waktu Session di PHP

Mungkin teman-teman pernah login pada sebuah halaman web dan ketika tidak melakukan aktivitas, akan secara otomatis keluar (logout) dari halaman yang sedang diakses. Teknik ini biasanya menggunakan session yang diberikan batas waktu tertentu. Yang bertujuan, disaat tidak ada aktivitas pada halaman tersebut secara otomatis pengguna akan dipaksa meninggalkan halaman itu, jika halaman yang diakses hanya dikhususkan untuk pengguna tertentu, tentunya ini sangat berguna dari segi keamaan, pada saat pengguna lupa untuk keluar (logout) halaman.

Tutorial kali ini akan membahas seputar membuat batasan waktu yang terdapat pada halaman tertentu dengan menggunakan variabel global $_SESSION dari PHP.
Kunci dari teknik ini adalah memberikan batas waktu tepat dinama sesi yang dibuat atau yang sedang aktif.

Buat file index.php dan limit_ses.php

index.php

<!DOCTYPE html>
<html>
<head>
	<title>PHP Session Limit | Kursus Web YELLOWWEB.ID</title>
</head>
<body>

	<h3>Halaman tanpa sesi</h3>
	<a href="limit_ses.php">Klik disini untuk menuju halaman dengan mengaktifkan sesi</a>

</body>
</html>

kemudian untuk file limit_ses.php

<?php
	session_start();
	$timeout = 1; // setting timeout dalam menit
	$logout = "index.php"; // redirect halaman logout

	$timeout = $timeout * 60; // menit ke detik
	if(isset($_SESSION['start_session'])){
		$elapsed_time = time()-$_SESSION['start_session'];
		if($elapsed_time >= $timeout){
			session_destroy();
			echo "<script type='text/javascript'>alert('Sesi telah berakhir');window.location='$logout'</script>";
		}
	}

	$_SESSION['start_session']=time();

?>
<!DOCTYPE html>
<html>
<head>
	<title>PHP Session Limit | Kursus Web YELLOWWEB.ID</title>
</head>
<body>
	
	<h3>Halaman dengan sesi</h3>


</body>
</html>

untuk sesi pada skrip kode tersebut akan diberikan batas waktu sekitar 1 menit. Jika tidak aktivitas pada halaman yang terdapat sesi akan dipaksa keluar, kemudian diarahkan kembali ke halaman home (index.php)

Teknik ini bisa teman-teman gunakan pada saat user mengakses halaman tertentu, misalnya seperti login form ke halaman dashboard administrator.

Sekian untuk artikel yang singkat ini semoga berguna bagi teman-teman semua. Sampai jumpa diartikel berikutnya.

Untuk demonya bisa dilihat disini:
https://www.yellowweb.id/demo/limit_ses