[ Index ]
 

Code source de Zen Cart E-Commerce Shopping Cart 1.3.7.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

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

   1  <?php
   2  /**

   3   * session-related functions used by installer *
   4   * @package Installer

   5   * @access private

   6   * @copyright Copyright 2003-2005 Zen Cart Development Team

   7   * @copyright Portions Copyright 2003 osCommerce

   8   * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0

   9   * @version $Id: sessions.php 2342 2005-11-13 01:07:55Z drbyte $

  10   */
  11  
  12  
  13    if (STORE_SESSIONS == 'db') {
  14      if (defined('DIR_WS_ADMIN')) {
  15        if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN + 900)) {
  16          $SESS_LIFE = (SESSION_TIMEOUT_ADMIN + 900);
  17        }
  18      } else {
  19        if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {
  20          $SESS_LIFE = 1440;
  21        }
  22      }
  23  
  24      function _sess_open($save_path, $session_name) {
  25        return true;
  26      }
  27  
  28      function _sess_close() {
  29        return true;
  30      }
  31  
  32      function _sess_read($key) {
  33        global $db;
  34        $qid = "select value
  35                from " . TABLE_SESSIONS . "
  36                where sesskey = '" . zen_db_input($key) . "'
  37                and expiry > '" . time() . "'";
  38  
  39        $value = $db->Execute($qid);
  40  
  41        if ($value->fields['value']) {
  42          return $value->fields['value'];
  43        }
  44  
  45        return false;
  46      }
  47  
  48      function _sess_write($key, $val) {
  49        global $db;
  50        global $SESS_LIFE;
  51  
  52        $expiry = time() + $SESS_LIFE;
  53        $value = $val;
  54  
  55        $qid = "select count(*) as total
  56                from " . TABLE_SESSIONS . "
  57                where sesskey = '" . zen_db_input($key) . "'";
  58  
  59        $total = $db->Execute($qid);
  60  
  61        if ($total->fields['total'] > 0) {
  62          $sql = "update " . TABLE_SESSIONS . "
  63                  set expiry = '" . zen_db_input($expiry) . "', value = '" . zen_db_input($value) . "'
  64                  where sesskey = '" . zen_db_input($key) . "'";
  65  
  66          return $db->Execute($sql);
  67  
  68        } else {
  69          $sql = "insert into " . TABLE_SESSIONS . "
  70                  values ('" . zen_db_input($key) . "', '" . zen_db_input($expiry) . "', '" .
  71                           zen_db_input($value) . "')";
  72  
  73          return $db->Execute($sql);
  74  
  75        }
  76      }
  77  
  78      function _sess_destroy($key) {
  79        global $db;
  80        $sql = "delete from " . TABLE_SESSIONS . " where sesskey = '" . zen_db_input($key) . "'";
  81        return $db->Execute($sql);
  82      }
  83  
  84      function _sess_gc($maxlifetime) {
  85        global $db;
  86        $sql = "delete from " . TABLE_SESSIONS . " where expiry < '" . time() . "'";
  87        $db->Execute($sql);
  88        return true;
  89      }
  90  
  91      session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
  92    }
  93  
  94    function zen_session_start() {
  95      if (defined('DIR_WS_ADMIN')) {
  96        @ini_set('session.gc_maxlifetime', (SESSION_TIMEOUT_ADMIN < 900 ? (SESSION_TIMEOUT_ADMIN + 900) : SESSION_TIMEOUT_ADMIN));
  97      }
  98      return session_start();
  99    }
 100  
 101    function zen_session_register($variable) {
 102      die('This function has been deprecated. Please use Register Globals Off compatible code');
 103    }
 104  
 105    function zen_session_is_registered($variable) {
 106      die('This function has been deprecated. Please use Register Globals Off compatible code');
 107    }
 108  
 109    function zen_session_unregister($variable) {
 110      die('This function has been deprecated. Please use Register Globals Off compatible code');
 111    }
 112  
 113    function zen_session_id($sessid = '') {
 114      if (!empty($sessid)) {
 115        return session_id($sessid);
 116      } else {
 117        return session_id();
 118      }
 119    }
 120  
 121    function zen_session_name($name = '') {
 122      if (!empty($name)) {
 123        return session_name($name);
 124      } else {
 125        return session_name();
 126      }
 127    }
 128  
 129    function zen_session_close() {
 130      if (function_exists('session_close')) {
 131        return session_close();
 132      }
 133    }
 134  
 135    function zen_session_destroy() {
 136      return session_destroy();
 137    }
 138  
 139    function zen_session_save_path($path = '') {
 140      if (!empty($path)) {
 141        return session_save_path($path);
 142      } else {
 143        return session_save_path();
 144      }
 145    }
 146  
 147    function zen_session_recreate() {
 148      if (PHP_VERSION >= 4.1) {
 149        $session_backup = $_SESSION;
 150  
 151        unset($_COOKIE[zen_session_name()]);
 152  
 153        zen_session_destroy();
 154  
 155        if (STORE_SESSIONS == 'db') {
 156          session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
 157        }
 158  
 159        zen_session_start();
 160  
 161        $_SESSION = $session_backup;
 162        unset($session_backup);
 163      }
 164    }
 165  ?>


Généré le : Mon Nov 26 16:45:43 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics