XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
session.php
1<?php
12
13
14class XoopsSessionHandler
15{
21 public $db;
22
27 public function __construct(&$db)
28 {
29 $this->db =& $db;
30 }
31 public function XoopsSessionHandler(&$db)
32 {
33 return self::__construct($db);
34 }
35
44 public function open($save_path, $session_name)
45 {
46 return true;
47 }
48
54 public function close()
55 {
56 return true;
57 }
58
66 public function read($sess_id)
67 {
68 $sql = sprintf('SELECT sess_data FROM %s WHERE sess_id = %s', $this->db->prefix('session'), $this->db->quoteString($sess_id));
69 if (false != $result = $this->db->query($sql)) {
70 if ([$sess_data] = $this->db->fetchRow($result)) {
71 return $sess_data;
72 }
73 }
74 return '';
75 }
76
85 public function write($sess_id, $sess_data)
86 {
87 $sess_id = $this->db->quoteString($sess_id);
88 [$count] = $this->db->fetchRow($this->db->query('SELECT COUNT(*) FROM ' . $this->db->prefix('session') . ' WHERE sess_id=' . $sess_id));
89 if ($count > 0) {
90 $sql = sprintf('UPDATE %s SET sess_updated = %u, sess_data = %s WHERE sess_id = %s', $this->db->prefix('session'), time(), $this->db->quoteString($sess_data), $sess_id);
91 } else {
92 $sql = sprintf('INSERT INTO %s (sess_id, sess_updated, sess_ip, sess_data) VALUES (%s, %u, %s, %s)', $this->db->prefix('session'), $sess_id, time(), $this->db->quoteString($_SERVER['REMOTE_ADDR']), $this->db->quoteString($sess_data));
93 }
94 if (!$this->db->queryF($sql)) {
95 return false;
96 }
97 return true;
98 }
99
107 public function destroy($sess_id)
108 {
109 $sql = sprintf('DELETE FROM %s WHERE sess_id = %s', $this->db->prefix('session'), $this->db->quoteString($sess_id));
110 if (!$result = $this->db->queryF($sql)) {
111 return false;
112 }
113 return true;
114 }
115
122 public function gc($expire)
123 {
124 $mintime = time() - (int)$expire;
125 $sql = sprintf('DELETE FROM %s WHERE sess_updated < %u', $this->db->prefix('session'), $mintime);
126 return $this->db->queryF($sql);
127 }
128}
write($sess_id, $sess_data)
Definition session.php:85
open($save_path, $session_name)
Definition session.php:44
destroy($sess_id)
Definition session.php:107