saya ingin membatasi waktu untuk user yang masuk ke dalam aplikasi PHP, bagaimana caranya ya? pertama saya gunakan session, saya kira sudah bisa logout bila idle, ternyata ga bisa. hehehehe…
ya setelah konsultasi d google ternyata banyak cara, bisa dengan menghapus chace dan ada yang d kasih waktu. saya coba yang pake waktu, misal 15 menit setelah user masuk maka otomatis logout dan harus kembali login. contohnya :
login.php
<?php require_once 'Functions/functions.php'; $strUserName = $_POST['username']; $strPassword = $_POST['password']; $strPasswordHash = strtolower(md5($strPassword)); $strLogin = "SELECT * from db_kar where nik_kar='". $strUserName ."' AND user_hash='". $strPasswordHash ."'"; $login=mysql_query($strLogin,$conn); if(mysql_num_rows($login)==1) { $row=mysql_fetch_array($login); $strname = $row['nam_kar']; $strstat = $row['status_kar']; session_start(); $_SESSION['last_access'] = time(); $_SESSION['logged'] = 1; $_SESSION['nam_kar'] = $strname; $_SESSION['username'] = $strUserName; } else {echo "Wrong Username or Password"; ?> <body onload="alert('ERROR,Wrong Username or Password');window.location.assign('../utama.php');"></body> <? } ?>
ceksession.php
<?php session_start(); if (isset($_SESSION['logged']) && $_SESSION['logged'] == 1) { if ($_SESSION['last_access'] + (15*60) < time()) { session_destroy(); header("location: ../utama.php"); exit; } } else { $redirect = $_SERVER['PHP_SELF']; header("Refresh: 3; URL=../utama.php?redirect=$redirect"); echo "Session Expired, Please Login again "; die(); } ?>
ya mudah mudahan ini bisa berguna untuk yang baca… 😀
Waw.. nice post!
Akhirnya dapat algoritmanya juga..
Makasih banyak yah gan..
visit my personal blog :
http://ariefcz.blogspot.com
gan numpang nanya gan…klo kita implementasikan ke ujian online gmn gan?
misalnya setelah 15 menit form ujian di submit…baru ntar barengan dengan dihilangkan nilai session tadi…
gmn scriptnya tch gan?
iya itu sama gan, stelah submit langsung checkseason,
header(“Refresh: 3; URL=../home.php?redirect=$redirect”);
3 itu menunjukkan 3 detik setelah submit.
mau nanya, kalo pas logout, terus login ke halaman yang dia tinggalin gimana itu?
Mas hafiz muhammad noer, terima kasih sudah berkunjung..
boleh di coba code berikut:
pada checksession.php:
$redirect = $_SERVER[‘REQUEST_URI’];
pada Login.php
if(isset($_REQUEST[‘redirect’]))
$url = $_REQUEST[‘redirect’]; // holds url for last page visited.
else
$url = “situsku/beranda.php”; // default page for
header(“Location:”.$url);
mas aku coba tebak ya harusnya kan dia masuk file terus di checksession.php nah abis itu ko aku selalu masuk ke yang
session_start();
if (isset($_SESSION[‘logged’]) && $_SESSION[‘logged’] == 1) {
if ($_SESSION[‘last_access’] + (15*60) < time()) {
session_destroy();
header("location: ../utama.php");
exit;
}
harusnya kan ke else baru ke login terus balik lagi.
aku masuknya ke atas mulu jadinya ke halaman utama terus