Timeout session after 5 minutes
[busui.git] / include / common-session.inc.php
blob:a/include/common-session.inc.php -> blob:b/include/common-session.inc.php
  <?php
  // you have to open the session to be able to modify or remove it
  session_start();
  if (isset($_REQUEST['service_period'])) {
  $_SESSION['service_period'] = filter_var($_REQUEST['service_period'], FILTER_SANITIZE_STRING);
  sessionUpdated();
  }
  if (isset($_REQUEST['time'])) {
  $_SESSION['time'] = filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING);
  sessionUpdated();
  }
  if (isset($_REQUEST['geolocate'])) {
  $geocoded = false;
  if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) {
  $_SESSION['lat'] = trim(filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
  $_SESSION['lon'] = trim(filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
  }
  else {
  $geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL);
  echo $_REQUEST['geolocate'];
  if (startsWith($geolocate, "-")) {
  $locateparts = explode(",", $geolocate);
  $_SESSION['lat'] = $locateparts[0];
  $_SESSION['lon'] = $locateparts[1];
  }
  else {
  $contents = geocode($geolocate, true);
  print_r($contents);
  if (isset($contents[0]->centroid)) {
  $geocoded = true;
  $_SESSION['lat'] = $contents[0]->centroid->coordinates[0];
  $_SESSION['lon'] = $contents[0]->centroid->coordinates[1];
  }
  else {
  $_SESSION['lat'] = "";
  $_SESSION['lon'] = "";
  }
  }
  }
  if ($_SESSION['lat'] != "" && isAnalyticsOn()) {
  trackEvent("Geolocation","Updated Location", "Geocoded - ".($geocoded ? "Yes" : "No"));
  }
  sessionUpdated();
  }
  function sessionUpdated() {
  $_SESSION['lastUpdated'] = time();
  }
  // timeoutSession
  $TIMEOUT_LIMIT = 60*5; // 5 minutes
  if (isset($_SESSION['lastUpdated']) && $_SESSION['lastUpdated']+$TIMEOUT_LIMIT < time()) {
  debug ("Session timeout ".($_SESSION['lastUpdated']+$TIMEOUT_LIMIT).">".time(),"session");
  session_destroy();
  session_start();
  }
  debug(print_r($_SESSION, true) , "session");
   
  ?>