creo que por aqui estaria el camino, prueba o parte desde este punto :
   Código PHP:
    if($HTTP_SESSION_VARS[usuarionline]==true){
        $sql="select * from registros where usuario=$_SESSION[suarionline]";
        $resultado = mysql_query($sql);
        $mirar=mysql_fetch_array($resultado);
        
        $datea=date("Y-m-d H:i:s");
        $tapete=$mirar['fecha'];     
     $registro = (strtotime($datea)-strtotime($tapete));
if($registro >= 100){ //10 minutos para dias saca la cuenta :-)
$sqlborrar="update registros set fecha='0000-00-00 ' where user_id=$_SESSION[userionline]";
mysql_query($sqlborrar);
$_SESSION[userionline] ="";
session_unset(); 
session_destroy();
}
 } 
    
  debes crear la tabla de base de datos con los campos fecha, usuarionline etccc lo que quieras
este codigo lo uso para cuando el usuario esta inactivo, deberias meter un codigo mas y una tabla en la base de datos, de tal forma que si es cero la fecha cargue en otra tabla algo asi como NO ADMITIDO, prueba creando una variable para la consulta no admitido luego cambia  
if($HTTP_SESSION_VARS[usuarionline]==true){ 
por 
if($variblenoadminitdo==true){ 
donde true debe ser verdadero si la cosulta No admitido es =0 y false si =1 o usando  !=0 para false 
entoces en cada pagina coloca la consulta a es tabla si el resultado es NO ADMITIDO  no lo dejas loguearse tal vez debas hacer otros cambios pero no tengo tiempo ahora, creo que esta bien 
de este modo si el usuario es logueado se deslogueara al terminar el tiempo, si intenta regresar no podra 
saludos 
 
PD: es solo un ejemplo sin testear .... pero creo que debe funcionar 
 
POR QUE  CON CADA RECARGA DE LA PAGINA  EL VALOR $DATEA SE ACTUALIZARA  

  asi que piensa como dejarlo fijo y listo tienes tu codigo ...... 
tomando el valor de la fecha de otro campo de DB y hacer $datea=$mirar[fecha_fija];  
 pero me guele la cabeza me vo a dormir , aqui es argentina y son las cuatro de la madrugada.... 
saludos!!