aboutsummaryrefslogtreecommitdiffstats
path: root/mayor-orig/www/include/share/session/close.php
blob: 146a038e0bf31e9da76fa19df6fa27ca4776b907 (plain)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/*
    Modules: base/session

    Az alábbi függvények nem ellenőrzik, hogy van-e jogunk a használatukhoz!
    At ellenőrzés az őket hívó program feladata.
    A visszatérési érték a törölt sorok száma, illetve -1, ha sikertelen a törlés (ld. php kézikönyv)

    function closeSession($sessionID = '')
    function closeUserSessions($userAccount = '', $policy = '')
*/

##########################################################
# Kitörli az összes lejart session-höz tartozó bejegyzést (policy-től függetlenül).
##########################################################

    function closeIdleSessions() {
	if (defined('_SESSION_MAX_IDLE_TIME') and _SESSION_MAX_IDLE_TIME > 0) {
	    $q = "DELETE FROM session WHERE activity + INTERVAL "._SESSION_MAX_IDLE_TIME." HOUR < NOW()";
	    return db_query($q, array('fv' => 'closeIdleSessions', 'modul' => 'login', 'result' => 'affected rows'));
	} else {
	    return true;
	}
    }

##########################################################
# Kitörli az összes adott session-höz tartozó bejegyzést (policy-től függetlenül).
##########################################################

    function closeSession($sessionID = '') {
	// _SESSIONID csak validUser esetén van, de mi lehet, hogy másik policy-ből jöttünk!
	if ($sessionID == '') $sessionID = $_REQUEST['sessionID'];
	$q = "DELETE FROM session WHERE sessionID='%s'";
	return db_query($q, array('fv' => 'closeSession', 'modul' => 'login', 'result' => 'affected rows', 'values' => array($sessionID)));
    }

##########################################################
# Kitörli az összes adott userAccount/policy-hez tartozó bejegyzést( (esetleg több sessionID-t is).
##########################################################

    function closeUserSessions($userAccount = '', $policy = '') {
	if ($userAccount == '') $userAccount = _USERACCOUNT;
	if ($policy == '') $policy = _POLICY;
	$q = "DELETE FROM session WHERE userAccount='%s' and policy='%s'";
	return db_query($q, array('fv' => 'closeUserSessions', 'modul' => 'login', 'result' => 'affected rows', 'values' => array($userAccount, $policy)));
    }

##########################################################
# Kitörli az összes "elavult" session-t.
##########################################################

    function closeOldSessions() {
	if (defined('_SESSION_MAX_TIME') and _SESSION_MAX_TIME > 0) {
	    $dt = date('Y-m-d H:i:s', mktime(date('H')-_SESSION_MAX_TIME,date('i'),date('s'),date('m'),date('d'),date('Y')));
	    $q = "DELETE FROM session WHERE dt<'%s'";
	    return db_query($q, array('fv' => 'closeOldSessions', 'modul' => 'login', 'result' => 'affected rows', 'values' => array($dt)));
	}
    }

##########################################################
# Kitörli az összes "elavult" és lejart session-t.
##########################################################
    function closeOldAndIdleSessions() {
	if (
	    (defined('SESSION_MAX_TIME') and _SESSION_MAX_TIME > 0)
	    || (defined('_SESSION_MAX_IDLE_TIME') and _SESSION_MAX_IDLE_TIME > 0)
	) {
		
	    $q = ''; $v = array();
	    if (defined('_SESSION_MAX_TIME') and _SESSION_MAX_TIME > 0) {
		$dt = date('Y-m-d H:i:s', mktime(date('H')-_SESSION_MAX_TIME,date('i'),date('s'),date('m'),date('d'),date('Y')));
		$q = "DELETE FROM session WHERE dt<'%s'";
		$v = array($dt);
	    }
	    if (defined('_SESSION_MAX_IDLE_TIME') and _SESSION_MAX_IDLE_TIME > 0) {
		if ($q == '') $q = "DELETE FROM session WHERE activity + INTERVAL "._SESSION_MAX_IDLE_TIME." HOUR < NOW()";
		else $q .= " OR activity + INTERVAL "._SESSION_MAX_IDLE_TIME." HOUR < NOW()";
	    }
	    if ($q == '') return true;
	    else return db_query($q, array('fv' => 'closeOldAndIdleSessions', 'modul' => 'login', 'result' => 'affected rows', 'values' => $v));

	} else {
	    return true;
	}

    }

##########################################################
# Kitörli az összes session-t.
##########################################################

    function closeAllSession() {
	return db_query("DELETE FROM session", array('fv' => 'closeAllSession', 'modul' => 'login', 'result' => 'affected rows'));
    }

?>