1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <?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"); ?> |