Refactor stop page
[busui.git] / include / common-session.inc.php
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']) && $_REQUEST['geolocate'] != "Enter co-ordinates or address here") {
        $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");
 
?>