Logo
Logout Inactive User
Online Now: 1

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Snippets Functions Classes

Home | PHP Resources | MySQL Zipbase | Forums

Snippet Code
Need to people out if they have been inactive for too long? Do it with this piece of code.

Introduction


This takes 3 functions to complete the inactive session task.

1. We need to check if the person is actually logged in using our isLogged function
2. We need the function to check the time the page loaded, and when the last page was loaded
3. We need a function to log the user out after inactivity.

It is reccomended that you place the 3 functions in the same file, and have this file
included on EVERY page that requires a login to view the page.

Function sessionX() MUST come after session_start()

functions.php


<?php
# Start a session
session_start();
# Check if a user is logged in
function isLogged(){
    if(
$_SESSION['logged']){ # When logged in this variable is set to TRUE
        
return TRUE;
    }else{
        return 
FALSE;
    }
}

# Log a user Out
function logOut(){
    
$_SESSION = array();
    if (isset(
$_COOKIE[session_name()])) {
        
setcookie(session_name(), ''time()-42000'/');
    }
    
session_destroy();
}

# Session Logout after in activity
function sessionX(){
    
$logLength 1800# time in seconds :: 1800 = 30 minutes
    
$ctime strtotime("now"); # Create a time from a string
    # If no session time is created, create one
    
if(!isset($_SESSION['sessionX'])){ 
        
# create session time
        
$_SESSION['sessionX'] = $ctime
    }else{
        
# Check if they have exceded the time limit of inactivity
        
if(((strtotime("now") - $_SESSION['sessionX']) > $logLength) && isLogged()){
            
# If exceded the time, log the user out
            
logOut();
            
# Redirect to login page to log back in
            
header("Location: /login.php");
            exit;
        }else{
            
# If they have not exceded the time limit of inactivity, keep them logged in
            
$_SESSION['sessionX'] = $ctime;
        }
    }
}
# Run Session logout check
sessionX();
?>
 
Snippet Comments

Add Your Comment

wotan
2010-02-28 00:00:00
i think that script will automatically logout the user after 15 minutes always! Not only in case of inactivity! How can this script know that user is inactive? And when teh user is doing something and suddenly is logged out thats bad...
BEN
2009-11-16 00:00:00
what would you do to have a popup come at the halfway point to alert you that you have only a few seconds left before you are timed out
Brian
2009-03-24 00:00:00
Thanks for the good tip. I get lots of tips from phpsnips.com.
Admin
2009-01-30 00:00:00
In that case, I would place a query within the function isLogged() right before the FALSE return.
redi
2008-12-18 00:00:00
What if i want to update a field in a database when islogged returns false.

Eg: a field which says online or offline.

Cheers, Just a suggestion
Admin
2008-09-05 00:00:00
This code snippet needs to be at the top of all files where a user needs to be logged in.

so you can place it in a "functions.php" file, then use include = "functions.php"; to connect to it.
Gubbins
2008-08-31 00:00:00
This is just what i need but i am unsure what file to add it to and the ones i have added it to gives me error messages!
randomideas
2008-07-25 00:00:00
You Rock!

Add Your Comment

 
Snippet Tools
Rate this Snippet:

Rate the difficulty level:

Request Snippet Update


Suggested Difficulty Level: Novice
Current Score: 3.14
Total votes: 298
Total Views: 6715

Other top snippets by admin:

1. JPG to ASCII Converter
2. Add (th, st, nd, rd, th) to the end of a number
3. Dynamic Page Content From Links
4. AJAX Quickie
5. Simple Image CAPTCHA

Search

Input key terms:
User Panel

User name:

Password:

Register And Post Your Own Snippets

Snippets On Watch

1.  Auth Class with (2.83 of 87)

2.  Test Please Delete (2.83 of 30)

3.  Return all repeated (3.64 of 72)

4.  Convert an integer (3.3 of 71)

5.  URL Shortening for (2.75 of 52)

6.  Monthly Content Sorting (3 of 45)

7.  Show String Trimmed (2.97 of 65)

8.  Human readable file (2.01 of 70)

9.  Randomize array values (2.8 of 82)

10.  Create a recursive (3.35 of 55)

New Snippets

1.  Parse RFC822 date (4 of 1)

2.  Dynamic Image Uploading (5 of 1)

3.  Spam Filter (0 of 0)

4.  Is Multiple (0 of 0)

5.  Base64 Encode / (0 of 0)

6.  URL Encode / (0 of 0)

7.  temp openbills (0 of 0)

8.  Php Iban Validator (0 of 0)

9.  Mysql Table Builder (0 of 0)

10.  File size of (1.75 of 4)

11.  Mail from your (1 of 1)

12.  OddEven Class (0 of 0)

13.  Detect if a (1 of 1)

14.  MB CopyMCF-DIR :: (5 of 1)

15.  Upper/Lower Case Accented (0 of 0)

16.  Zodiac Signs (3 of 1)

17.  Really useful code (2.5 of 2)

18.  Calculate Central European (0 of 0)

19.  Email Attachment (4 of 1)

20.  ImageMagick Image Upload (0 of 0)

21.  convert plain html (2 of 2)

22.  Tag Builder (3.25 of 4)

23.  Get Inserted ID (4.33 of 3)

24.  Watermark An Image (3.33 of 3)

25.  Check Prime Numbers (1.5 of 8)

Home | Forum | Free PHP Web Hosting | Contact | Terms & Conditions |  
Donate
PHPSnips.com - ©2010