Script Pengatur Waktu N Log Out Otomatis

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Script Pengatur Waktu N Log Out Otomatis as PDF for free.

More details

  • Words: 1,061
  • Pages: 6
Script pengatur waktu n log out otomatis Written by Administrator Saturday, 30 May 2009 03:49 Banyak hal terjadi jika seseorang telah berhasil login sebagai user, dan tentunya login ini ada ketika user akan memanfaatkan layanan dari suatu website, bukan karena sebab yang lain, seperti tingkat sekuritas yang buruk. Selalu ada masa idle. Idle di sini bermakna user tidak melakukan apa-apa sama sekali di website tersebut, tidak berpindah halaman, tidak memasukkan input pada form manapun, dan tidak ada hal apapun yang menyebabkan sebuah halaman website terrefresh, dengan kata lain user tidak melakukan apa pun pada website yang sedang dia kunjungi. Sungguh user yang aneh. :D~~. Tapi hal seperti ini dapat terjadi jika user sedang asik mengunjungi website yang lain, dan lupa akan website yang dia kunjungi sebelumnya. Tentunya keadaan user pada website yang dikunjungi sebelumnya dianggap sebagai condition yang idle oleh website tersebut. Tidak ada hal apapun yang terjadi di website sebelumnya. Atau kondisi lain, dimana seorang user yang telah 10 menit meninggalkan pc-nya dalam keadaan lupa melogout accountnya. Sungguh terlalu. Di sinilah fungsi pengatur waktu session benar-benar dibutuhkan. Ada dua cara untuk mengatur waktu session, yang pertama adalah merubah konfigurasi session timeout pada php.ini, cara yang terakhir yaitu dengan memanfaatkan fungsi time() dan variable session yang telah teregistrasi, dengan kata lain cara yang terakhir ini adalah merancang barisan code yang dapat mengatur waktu session. Penulis tidak akan menjelaskan cara yang pertama. Tapi yang akan penulis jelaskan adalah cara yang kedua. Penulis akan mengambil sebuah contoh kasus, ini untuk memudahkan penjelasan secara logika, dan penjelasan alur dari cara kerja script yang akan dibuat. Kasusnya seperti ini, “Ketika user telah berhasil login, akan ada sebuah session yang digunakan sebagai patokan untuk membandingkan berapa lama user telah berada pada halaman website tersebut. Apabila waktu time() yang berjalan lebih besar dari nilai session dari variable yang dijadikan sebagai patokan nanti maka user tersebut akan secara otomatis terlogout”. Secara struktur, algoritmanya akan seperti ini : 1. Sediakan sebuah variable x, berisi waktu sekarang ditambah 30 detik. 2. Jadikan variable x tersebut sebagai session, yang akan membypass valuenya pada setiap halaman, dengan kata lain, isi variable x tersebut dapat ditampilkan di halaman mana pun. 3. Bandingkan waktu sekarang dengan nilai dari variable x tersebut. 4. Jika waktu sekarang lebih kecil dari nilai variable x tersebut, maka si user masih dalam keadaan login. 5. Jika waktu sekarang lebih besar dari nilai variable x tersebut, maka keadaan si user adalah logout. 6. Jika user melakukan refresh halaman, berpindah halaman, mengisi form, sebelum masa sessionnya habis maka waktu login di tambah 10 menit berikutnya.

Ya, untuk algoritma di atas penulis bagi menjadi 2 function, yakni function login_validate() dan login_check(). Langsung saja persiapkan script yang dibutuhkan : File index.php : Selanjutnya file intinya yaitu, functions.php : Kemudian admin.php, barisan code dalam admin.php ini penulis ibaratkan seperti kondisi dari admin yang telah berhasil login. Jika lebih dari 30 detik maka user secara otomatis

akan di logout. Nilai 30 detik ini diambil dari variable $timeout yang ada di functions.php. File Admin.php : Selanjutnya halaman login usernya, login.php : Login Page ...!
username
password
Terlihat jelas pada baris ke 4 di atas, halaman login page memiliki action, menuju index.php, yang kemudian menghasilkan 2 variable POST, yaitu $_POST[‘username’], dan $_POST[‘password’]. Kedua variable inilah yang kemudian dicek pada halaman index.php.

Dan yang terakhir adalah logout.php : Cara kerja source code di atas cukup sederhana, lihat barisan code index.php, ...... if (( $_POST['username'] == 'admin' ) && ( $_POST['password'] == 'admin')) { $_SESSION['user'] = $_POST['username']; login_validate(); header("location: admin.php"); } else if ( empty($_POST['username']) && empty($_POST['password']) ) { header("location: login.php"); } .... Penjelasannya adalah sebagai berikut, Jika user memasukkan username dan password yang cocok ( dalam kasus ini username dan passwordnya adalah admin ) maka user akan diberikan sebuah variable session, yakni $_SESSION['user'], dan akan ditambahkan sebuah variable baru yang nantinya variable ini berfungsi sebagai timer, yakni $timeout = 30; Variable tersebut berada dalam fungsi login_validate() pada script functions.php. Sedangkan masih dalam fungsi login_validate, lompat ke barisan code dibawahnya yaitu : $_SESSION["expires_by"] = time() + $timeout; Disinilah letak timer yang sebenarnya, kehebatan dari session adalah dapat melakukan passing value walaupun halamannya berbeda. Jelasnya $_SESSION["expires_by"] mengambil nilainya dari waktu ketika user pertama kali login yaitu time() di tambah dengan 30 detik kedepannya, yakni isi dari variable $timeout.

Nah, dari situ, lihat ke bagian fungsi yang ada di bawahnya, pada functions.php : ... function login_check() { $exp_time = $_SESSION["expires_by"]; if (time() < $exp_time) { login_validate(); return true; } else { unset($_SESSION["expires_by"]); return false; } } .... Ya, lihat baris : $exp_time = $_SESSION["expires_by"]; Varibale $exp_time itu memiliki nilai dari $_SESSION["expires_by"], Untuk kejelesannya penulis berikan contoh seperti ini, jika user login pada waktu jam 5, maka $_SESSION["expires_by"] berisi jam ke 5, menit ke 0, dan detik ke 30. Dan secara alami pun diketahui bahwa yang namanya waktu pasti akan terus bertambah tentunya. Tapi karena berada dalam fungsi, variable $_SESSION["expires_by"] ini tidak akan bertambah, walaupun time() terus berlanjutnya. Lompat ke baris selanjutnya : if (time() < $exp_time) { login_validate(); return true; Dalam baris tersebut sederhananya adalah, jika waktu yang sekarang berjalan lebih kecil nilainya dari nilai yang ada pada $_SESSION["expires_by"], maka tambahkan 30 detik lagi, dan jika waktu pada time() sama dengan nilai $_SESSION["expires_by"] maka user akan otomatis logout Selanjutnya ... ... else { unset($_SESSION["expires_by"]); return false; } ... Jika waktu yang sekarang berjalan itu lebih besar dari nilai yang ada pada $_SESSION["expires_by"], maka lakukan logout.

Script tersebut dapat di download di sini http://networkandgame.890m.com/ilmuwebsite/article/session-time-by-alk.zip Cukup jelas ya. Jika ada yang di tanyakan, silahkan layangkan pertanyaan ke email penulis. [email protected] .

Related Documents