]> git.wh0rd.org - tt-rss.git/blame - sessions.php
bump
[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
62b92564 7 $session_expire = 3600; //seconds
36bfab86
AD
8
9 ini_set("session.gc_probability", 50);
8fd92701 10 ini_set("session.name", "ttrss_sid");
36bfab86
AD
11
12 function open ($s, $n) {
13
14 global $session_connection;
15
16 $session_connection = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
17
18 return true;
19 }
20
21 function read ($id){
22
23 global $session_connection,$session_read;
24
09018e95
AD
25 $ip_address = $_SERVER["REMOTE_ADDR"];
26
27 if (SESSION_CHECK_ADDRESS) {
28 $address_check_qpart = " AND ip_address = '$ip_address'";
29 }
30
31 $query = "SELECT data FROM ttrss_sessions WHERE id='$id' $address_check_qpart";
36bfab86
AD
32
33 $res = db_query($session_connection, $query);
34
35 if (db_num_rows($res) != 1) {
36 return "";
37 } else {
38 $session_read = db_fetch_assoc($res);
39 $session_read["data"] = base64_decode($session_read["data"]);
40 return $session_read["data"];
41 }
42 }
43
44 function write ($id, $data) {
45
46 if (! $data) {
47 return false;
48 }
49
50 global $session_connection, $session_read, $session_expire;
51
52 $expire = time() + $session_expire;
53
54 $data = db_escape_string(base64_encode($data), $session_connection);
55
09018e95
AD
56 $ip_address = $_SERVER["REMOTE_ADDR"];
57
58 if (SESSION_CHECK_ADDRESS) {
59 $address_check_qpart = " AND ip_address = '$ip_address'";
60 }
61
36bfab86
AD
62 if ($session_read) {
63 $query = "UPDATE ttrss_sessions SET data='$data',
09018e95 64 expire='$expire' WHERE id='$id' $address_check_qpart";
36bfab86 65 } else {
09018e95
AD
66 $query = "INSERT INTO ttrss_sessions (id, data, expire, ip_address)
67 VALUES ('$id', '$data', '$expire', '$ip_address')";
36bfab86
AD
68 }
69
70 db_query($session_connection, $query);
71 return true;
72 }
73
74 function close () {
75
76 global $session_connection;
77
78 db_close($session_connection);
79
80 return true;
81 }
82
83 function destroy ($id) {
84
85 global $session_connection;
09018e95
AD
86
87 $ip_address = $_SERVER["REMOTE_ADDR"];
88
89 if (SESSION_CHECK_ADDRESS) {
90 $address_check_qpart = " AND ip_address = '$ip_address'";
91 }
92
93 $query = "DELETE FROM ttrss_sessions WHERE id = '$id' $address_check_qpart";
36bfab86
AD
94
95 db_query($session_connection, $query);
96
97 return true;
98 }
99
100 function gc ($expire) {
101
102 global $session_connection;
103
104 $query = "DELETE FROM ttrss_sessions WHERE expire < " . time();
105
106 db_query($session_connection, $query);
107 }
108
8fd92701
AD
109 if (DATABASE_BACKED_SESSIONS) {
110 session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
111 }
112
36bfab86
AD
113 session_start();
114?>