[ Index ]
osCommerce Docs :: PHP Cross Reference For osCommerce 2.2 MS2
Provided By OSCdox.com

/includes/functions/ -> sessions.php (source)

[Summary view]

   1  <?php
   2  /*
   3    $Id: sessions.php,v 1.19 2003/07/02 22:10:34 hpdl Exp $
   4  
   5    osCommerce, Open Source E-Commerce Solutions
   6    http://www.oscommerce.com
   7  
   8    Copyright (c) 2003 osCommerce
   9  
  10    Released under the GNU General Public License
  11  */
  12  
  13    if (STORE_SESSIONS == 'mysql') {
  14      if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {
  15        $SESS_LIFE = 1440;
  16      }
  17  
  18      function _sess_open($save_path, $session_name) {
  19        return true;
  20      }
  21  
  22      function _sess_close() {
  23        return true;
  24      }
  25  
  26      function _sess_read($key) {
  27        $value_query = tep_db_query("select value from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "' and expiry > '" . time() . "'");
  28        $value = tep_db_fetch_array($value_query);
  29  
  30        if (isset($value['value'])) {
  31          return $value['value'];
  32        }
  33  
  34        return false;
  35      }
  36  
  37      function _sess_write($key, $val) {
  38        global $SESS_LIFE;
  39  
  40        $expiry = time() + $SESS_LIFE;
  41        $value = $val;
  42  
  43        $check_query = tep_db_query("select count(*) as total from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'");
  44        $check = tep_db_fetch_array($check_query);
  45  
  46        if ($check['total'] > 0) {
  47          return tep_db_query("update " . TABLE_SESSIONS . " set expiry = '" . tep_db_input($expiry) . "', value = '" . tep_db_input($value) . "' where sesskey = '" . tep_db_input($key) . "'");
  48        } else {
  49          return tep_db_query("insert into " . TABLE_SESSIONS . " values ('" . tep_db_input($key) . "', '" . tep_db_input($expiry) . "', '" . tep_db_input($value) . "')");
  50        }
  51      }
  52  
  53      function _sess_destroy($key) {
  54        return tep_db_query("delete from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'");
  55      }
  56  
  57      function _sess_gc($maxlifetime) {
  58        tep_db_query("delete from " . TABLE_SESSIONS . " where expiry < '" . time() . "'");
  59  
  60        return true;
  61      }
  62  
  63      session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
  64    }
  65  
  66    function tep_session_start() {
  67      return session_start();
  68    }
  69  
  70    function tep_session_register($variable) {
  71      global $session_started;
  72  
  73      if ($session_started == true) {
  74        return session_register($variable);
  75      } else {
  76        return false;
  77      }
  78    }
  79  
  80    function tep_session_is_registered($variable) {
  81      return session_is_registered($variable);
  82    }
  83  
  84    function tep_session_unregister($variable) {
  85      return session_unregister($variable);
  86    }
  87  
  88    function tep_session_id($sessid = '') {
  89      if (!empty($sessid)) {
  90        return session_id($sessid);
  91      } else {
  92        return session_id();
  93      }
  94    }
  95  
  96    function tep_session_name($name = '') {
  97      if (!empty($name)) {
  98        return session_name($name);
  99      } else {
 100        return session_name();
 101      }
 102    }
 103  
 104    function tep_session_close() {
 105      if (PHP_VERSION >= '4.0.4') {
 106        return session_write_close();
 107      } elseif (function_exists('session_close')) {
 108        return session_close();
 109      }
 110    }
 111  
 112    function tep_session_destroy() {
 113      return session_destroy();
 114    }
 115  
 116    function tep_session_save_path($path = '') {
 117      if (!empty($path)) {
 118        return session_save_path($path);
 119      } else {
 120        return session_save_path();
 121      }
 122    }
 123  
 124    function tep_session_recreate() {
 125      if (PHP_VERSION >= 4.1) {
 126        $session_backup = $_SESSION;
 127  
 128        unset($_COOKIE[tep_session_name()]);
 129  
 130        tep_session_destroy();
 131  
 132        if (STORE_SESSIONS == 'mysql') {
 133          session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
 134        }
 135  
 136        tep_session_start();
 137  
 138        $_SESSION = $session_backup;
 139        unset($session_backup);
 140      }
 141    }
 142  ?>


Generated: Tue Nov 4 23:53:39 2003
Hosted By :: AABox.com
Cross-referenced by PHPXref 0.4