  |
67 | 67 | | global $osC_Database; |
| |
68 | 68 | | |
| |
69 | 69 | | $Qsession = $osC_Database->query('select value from :table_sessions where sesskey = :sesskey'); |
  |
| 70 | + | |
| |
| 71 | + | if ( SERVICE_SESSION_EXPIRATION_TIME > 0 ) { |
| |
| 72 | + | $Qsession->appendQuery('and expiry > :expiry'); |
| |
| 73 | + | $Qsession->bindInt(':expiry', time()); |
| |
| 74 | + | } |
| |
| 75 | + | |
|
70 | 76 | | $Qsession->bindTable(':table_sessions', TABLE_SESSIONS); |
| |
71 | 77 | | $Qsession->bindValue(':sesskey', $id); |
| |
72 | 78 | | $Qsession->execute(); |
| |
73 | 79 | | |
| |
74 | 80 | | if ( $Qsession->numberOfRows() === 1 ) { |
  |
75 | | - | $value = $Qsession->value('value'); |
| |
76 | | - | |
| |
77 | | - | $Qsession->freeResult(); |
| |
78 | | - | |
| |
79 | | - | return $value; |
| |
| 81 | + | return $Qsession->value('value'); |
|
80 | 82 | | } |
| |
81 | 83 | | |
| |
82 | 84 | | return false; |
| |
|
|
 |
… |
|
104 | 106 | | $Qsession = $osC_Database->query('insert into :table_sessions values (:sesskey, :expiry, :value)'); |
| |
105 | 107 | | } |
| |
106 | 108 | | $Qsession->bindTable(':table_sessions', TABLE_SESSIONS); |
  |
107 | | - | $Qsession->bindValue(':sesskey', $id); |
| |
108 | | - | $Qsession->bindValue(':expiry', time()); |
| |
| 109 | + | $Qsession->bindInt(':expiry', time() + (SERVICE_SESSION_EXPIRATION_TIME * 60)); |
|
109 | 110 | | $Qsession->bindValue(':value', $value); |
  |
| 111 | + | $Qsession->bindValue(':sesskey', $id); |
|
110 | 112 | | $Qsession->execute(); |
| |
111 | 113 | | |
| |
112 | 114 | | return ( $Qsession->affectedRows() === 1 ); |
| |
|
|
 |
… |
|
133 | 135 | | protected function _custom_gc($max_life_time) { |
| |
134 | 136 | | global $osC_Database; |
| |
135 | 137 | | |
  |
| 138 | + | // $max_life_time is already added to the time in the _custom_write method |
| |
| 139 | + | |
|
136 | 140 | | $Qsession = $osC_Database->query('delete from :table_sessions where expiry < :expiry'); |
| |
137 | 141 | | $Qsession->bindTable(':table_sessions', TABLE_SESSIONS); |
  |
138 | | - | $Qsession->bindValue(':expiry', time() - $max_life_time); |
| |
| 142 | + | $Qsession->bindValue(':expiry', time()); |
  |
139 | 143 | | $Qsession->execute(); |
| |
140 | 144 | | |
| |
141 | 145 | | return ( $Qsession->affectedRows() > 0 ); |