  |
1 | 1 | | <?php |
| |
2 | 2 | | /* |
  |
3 | | - | $Id: session_compatible.php 5 2005-01-31 01:40:15Z hpdl $ |
| |
| 3 | + | $Id: session_compatible.php 19 2005-02-25 02:57:18Z hpdl $ |
|
4 | 4 | | |
| |
5 | 5 | | osCommerce, Open Source E-Commerce Solutions |
| |
6 | 6 | | http://www.oscommerce.com |
| |
7 | 7 | | |
  |
8 | | - | Copyright (c) 2004 osCommerce |
| |
| 8 | + | Copyright (c) 2005 osCommerce |
|
9 | 9 | | |
| |
10 | 10 | | Released under the GNU General Public License |
| |
11 | 11 | | */ |
| |
|
|
 |
… |
|
221 | 221 | | } |
| |
222 | 222 | | |
| |
223 | 223 | | function _read($key) { |
  |
224 | | - | $value_query = tep_db_query("select value from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "' and expiry > '" . time() . "'"); |
| |
225 | | - | if (tep_db_num_rows($value_query)) { |
| |
226 | | - | $value = tep_db_fetch_array($value_query); |
| |
| 224 | + | global $osC_Database; |
|
227 | 225 | | |
  |
228 | | - | return $value['value']; |
| |
| 226 | + | $Qsession = $osC_Database->query('select value from :table_sessions where sesskey = :sesskey and expiry > :expiry'); |
| |
| 227 | + | $Qsession->bindTable(':table_sessions', TABLE_SESSIONS); |
| |
| 228 | + | $Qsession->bindValue(':sesskey', $key); |
| |
| 229 | + | $Qsession->bindRaw(':expiry', time()); |
| |
| 230 | + | $Qsession->execute(); |
| |
| 231 | + | |
| |
| 232 | + | if ($Qsession->numberOfRows() > 0) { |
| |
| 233 | + | $value = $Qsession->value('value'); |
| |
| 234 | + | |
| |
| 235 | + | $Qsession->freeResult(); |
| |
| 236 | + | |
| |
| 237 | + | return $value; |
|
229 | 238 | | } |
| |
230 | 239 | | |
| |
231 | 240 | | return false; |
| |
232 | 241 | | } |
| |
233 | 242 | | |
| |
234 | 243 | | function _write($key, $value) { |
  |
| 244 | + | global $osC_Database; |
| |
| 245 | + | |
|
235 | 246 | | if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) { |
| |
236 | 247 | | $SESS_LIFE = 1440; |
| |
237 | 248 | | } |
| |
238 | 249 | | |
| |
239 | 250 | | $expiry = time() + $SESS_LIFE; |
| |
240 | 251 | | |
  |
241 | | - | $check_query = tep_db_query("select count(*) as total from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'"); |
| |
242 | | - | $check = tep_db_fetch_array($check_query); |
| |
| 252 | + | $Qsession = $osC_Database->query('select count(*) as total from :table_sessions where sesskey = :sesskey'); |
| |
| 253 | + | $Qsession->bindTable(':table_sessions', TABLE_SESSIONS); |
| |
| 254 | + | $Qsession->bindValue(':sesskey', $key); |
| |
| 255 | + | $Qsession->execute(); |
|
243 | 256 | | |
  |
244 | | - | if ($check['total'] > 0) { |
| |
245 | | - | return tep_db_query("update " . TABLE_SESSIONS . " set expiry = '" . tep_db_input($expiry) . "', value = '" . tep_db_input($value) . "' where sesskey = '" . tep_db_input($key) . "'"); |
| |
| 257 | + | if ($Qsession->valueInt('total') > 0) { |
| |
| 258 | + | $Qsession = $osC_Database->query('update :table_sessions set expiry = :expiry, value = :value where sesskey = :sesskey'); |
|
246 | 259 | | } else { |
  |
247 | | - | return tep_db_query("insert into " . TABLE_SESSIONS . " values ('" . tep_db_input($key) . "', '" . tep_db_input($expiry) . "', '" . tep_db_input($value) . "')"); |
| |
| 260 | + | $Qsession = $osC_Database->query('insert into :table_sessions values (:sesskey, :expiry, :value)'); |
|
248 | 261 | | } |
  |
| 262 | + | $Qsession->bindRaw(':table_sessions', TABLE_SESSIONS); |
| |
| 263 | + | $Qsession->bindValue(':sesskey', $key); |
| |
| 264 | + | $Qsession->bindValue(':expiry', $expiry); |
| |
| 265 | + | $Qsession->bindValue(':value', $value); |
| |
| 266 | + | |
| |
| 267 | + | if ($Qsession->execute()) { |
| |
| 268 | + | $write = true; |
| |
| 269 | + | } else { |
| |
| 270 | + | $write = false; |
| |
| 271 | + | } |
| |
| 272 | + | |
| |
| 273 | + | $Qsession->freeResult(); |
| |
| 274 | + | |
| |
| 275 | + | return $write; |
|
249 | 276 | | } |
| |
250 | 277 | | |
| |
251 | 278 | | function _destroy($key) { |
  |
252 | | - | return tep_db_query("delete from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'"); |
| |
| 279 | + | global $osC_Database; |
| |
| 280 | + | |
| |
| 281 | + | $Qsession = $osC_Database->query('delete from :table_sessions where sesskey = :sesskey'); |
| |
| 282 | + | $Qsession->bindTable(':table_sessions', TABLE_SESSIONS); |
| |
| 283 | + | $Qsession->bindValue(':sesskey', $key); |
| |
| 284 | + | $Qsession->execute(); |
| |
| 285 | + | |
| |
| 286 | + | $Qsession->freeResult(); |
|
253 | 287 | | } |
| |
254 | 288 | | |
| |
255 | 289 | | function _gc($maxlifetime) { |
  |
256 | | - | return tep_db_query("delete from " . TABLE_SESSIONS . " where expiry < '" . time() . "'"); |
| |
| 290 | + | global $osC_Database; |
| |
| 291 | + | |
| |
| 292 | + | $Qsession = $osC_Database->query('delete from :table_sessions where expiry < :expiry'); |
| |
| 293 | + | $Qsession->bindTable(':table_sessions', TABLE_SESSIONS); |
| |
| 294 | + | $Qsession->bindValue(':expiry', time()); |
| |
| 295 | + | $Qsession->execute(); |
| |
| 296 | + | |
| |
| 297 | + | $Qsession->freeResult(); |
  |
257 | 298 | | } |
| |
258 | 299 | | } |
| |
259 | 300 | | ?> |