session timeout

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… :D

3 Responses to session timeout

  1. Arief Rivai says:

    Waw.. nice post!
    Akhirnya dapat algoritmanya juga..
    Makasih banyak yah gan..

    visit my personal blog :
    http://ariefcz.blogspot.com

  2. 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?

  3. rifkyiip says:

    iya itu sama gan, stelah submit langsung checkseason,
    header(“Refresh: 3; URL=../home.php?redirect=$redirect”);
    3 itu menunjukkan 3 detik setelah submit.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.