3 function session_invalidate($dest='')
7 db_query(sprintf('DELETE FROM online WHERE uid = %d', $_SESSION['uid']));
9 setcookie($cfg['session'], '', time()-42000, '/');
13 header("Location: " . $cfg['home'] . $dest);
18 function userstatus_info()
24 $query = 'SELECT count(*) FROM online';
25 $sth = db_query($query);
29 $row = pg_fetch_array($sth, 0);
33 $query = 'SELECT count(*) FROM users';
34 $sth = db_query($query);
38 $row = pg_fetch_array($sth, 0);
42 $query = 'SELECT count(*) FROM zeitungen WHERE deleted IS false';
43 $sth = db_query($query);
47 $row = pg_fetch_array($sth, 0);
51 $query = 'SELECT count(*) FROM zeitung_tags';
52 $sth = db_query($query);
56 $row = pg_fetch_array($sth, 0);
60 $query = 'SELECT count(*) FROM tags';
61 $sth = db_query($query);
65 $row = pg_fetch_array($sth, 0);
72 function session_update()
76 $info = userstatus_info();
78 $_SESSION['online'] = $info[0];
79 $_SESSION['users'] = $info[1];
80 $_SESSION['zeitungen'] = $info[2];
81 $_SESSION['ztags'] = $info[3];
82 $_SESSION['tags'] = $info[4];
85 function session_init()
89 if (isset($_COOKIE[$cfg['session']])) {
90 session_name($cfg["session"]);
93 if ($_SESSION["REMOTE_ADDR"] != $_SERVER["REMOTE_ADDR"] ||
94 !isset($_SESSION["uid"]))
95 session_invalidate('login.html?from=session');
97 $query = sprintf('UPDATE online SET activity = now() WHERE uid = %d', $_SESSION['uid']);
98 $sth = db_query($query);
99 if (pg_affected_rows($sth) < 1) {
100 $query = sprintf('INSERT INTO online (uid,activity) VALUES (%d,now())', $_SESSION['uid']);
101 $sth = db_query($query);
104 if ($_SESSION["lastupdate"] < time() - 60) {
106 $_SESSION["lastupdate"] = time();