Mungkin teman-teman pernah menjumpai beberapa situs dimana kondisi disaat kita berada didalam halaman situs yang kita kunjungi, tetapi tanpa melakukan aktivitas sama sekali, maka yang terjadi pada halaman web akan melakukan refresh secara otomatis. Hal demikian kita bisa terapkan juga, saat kita membuat form login.
Jadi jika user sudah login, namun tidak melakukan aktivitas sama sekali pada waktu tertentu yang telah ditentukan pada halaman tersebut, akan kita arahkan halaman tersebut secara otomatis ke halaman logout, untuk melakukan login ulang. Hal ini bertujuan supaya sesi yang ada, tidak dalam kondisi aktif secara terus menerus.
Untuk teknik yang akan kita gunakan, kita akan membuat sebuah form login, kemudian menggunakan variable global $_SESSION
untuk membuat sesinya. Tutorial yang akan dibuat tanpa menggunaan database.
Buat form login.php
<?php session_start();// memulai sebuah sesi // jika tombol login telah diset/ diklik if(isset($_POST["submit"])){ $_SESSION["user"] = $_POST["user"]; // didapatkan dari inputan Username $_SESSION["last_login_timestamp"] = time(); // waktu model UNIX // arahkan ke halaman index.php header("location: index.php"); } ?> <!DOCTYPE html> <html> <head> <title>Login Form - Logout Otomatis | Kursus Web YELLOWWEB.ID</title> </head> <body> <h3>Login Dulu ya,...</h3> <form action="" method="post"> <input type="text" name="user" placeholder="Masukkan Username"> <input type="password" name="pass" placeholder="Masukkan Password"> <input type="submit" name="submit" value="Login"> </form> </body> </html>
Kemudian lanjutkan dengan membuat file logout.php
dan index.php
<?php //logout session_start(); session_destroy(); // arahkan ke halaman login.php header("location: login.php"); ?>
file indeksnya sebagai berikut:
<!DOCTYPE html> <html> <head> <title>Home - Logout Otomatis | Kursus Web YELLOWWEB.ID</title> </head> <body> <h3>Selamat Datang</h3> <?php session_start(); if(isset($_SESSION["user"])){ // jika ada sesi // jika tidak ada aktivitas pada browser // selama 15 menit, maka if((time() - $_SESSION["last_login_timestamp"]) > 900){// 900 = 15 * 60 // akan diarahkan kehalaman logout.php header("location: logout.php"); } else { // jika ada aktivitas update waktu $_SESSION["last_login_timestamp"] = time(); echo "<h3>".$_SESSION["user"]."</h3>"; echo "<h3>".$_SESSION["last_login_timestamp"]."</h3>"; echo "<a href='logout.php'>Logout</a>"; } } else { header("location:login.php"); } ?> </body> </html>
Kode diatas teman-teman bisa mencobanya secara lansung disini:
URL: https://www.yellowweb.id/demo/autologout/index.php