]> git.wh0rd.org - tt-rss.git/blame - sessions.php
database backed sessions
[tt-rss.git] / sessions.php
CommitLineData
36bfab86
AD
1<?
2 // Original from http://www.daniweb.com/code/snippet43.html
3
4 require_once "config.php";
5 require_once "db.php";
6
7 $session_expire = 600;
8
9 ini_set("session.gc_probability", 50);
10
11 function open ($s, $n) {
12
13 global $session_connection;
14
15 $session_connection = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
16
17 return true;
18 }
19
20 function read ($id){
21
22 global $session_connection,$session_read;
23
24 $query = "SELECT data FROM ttrss_sessions WHERE id='$id'";
25
26 $res = db_query($session_connection, $query);
27
28 if (db_num_rows($res) != 1) {
29 return "";
30 } else {
31 $session_read = db_fetch_assoc($res);
32 $session_read["data"] = base64_decode($session_read["data"]);
33 return $session_read["data"];
34 }
35 }
36
37 function write ($id, $data) {
38
39 if (! $data) {
40 return false;
41 }
42
43 global $session_connection, $session_read, $session_expire;
44
45 $expire = time() + $session_expire;
46
47 $data = db_escape_string(base64_encode($data), $session_connection);
48
49 if ($session_read) {
50 $query = "UPDATE ttrss_sessions SET data='$data',
51 expire='$expire' WHERE id='$id'";
52 } else {
53 $query = "INSERT INTO ttrss_sessions (id, data, expire)
54 VALUES ('$id', '$data', '$expire')";
55 }
56
57 db_query($session_connection, $query);
58 return true;
59 }
60
61 function close () {
62
63 global $session_connection;
64
65 db_close($session_connection);
66
67 return true;
68 }
69
70 function destroy ($id) {
71
72 global $session_connection;
73
74 $query = "DELETE FROM ttrss_sessions WHERE id = '$id'";
75
76 db_query($session_connection, $query);
77
78 return true;
79 }
80
81 function gc ($expire) {
82
83 global $session_connection;
84
85 $query = "DELETE FROM ttrss_sessions WHERE expire < " . time();
86
87 db_query($session_connection, $query);
88 }
89
90 session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
91 session_start();
92?>