[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
[phpBB Debug] PHP Warning: in file [ROOT]/includes/crs/crs_misc_functions.php on line 37: mime_content_type(): Empty filename or path
Zen Cart 源代码 sessions.php

Zen Cart 源代码 sessions.php




下载文件

文件名: sessions.php
文件类型: PHP文件
文件大小: 6.13 KiB
MD5: cf9564029b83a21d94c3b0bdf71d3ac0

sessions.php - 关闭高亮
  1. <?php
  2. /**
  3.  * functions/sessions.php
  4.  * Session functions
  5.  *
  6.  * @package functions
  7.  * @copyright Copyright 2003-2010 Zen Cart Development Team
  8.  * @copyright Portions Copyright 2003 osCommerce
  9.  * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
  10.  * @version $Id: sessions.php 16745 2010-06-17 12:02:17Z wilt $
  11.  */
  12. if (!defined('IS_ADMIN_FLAG')) {
  13.   die('Illegal Access');
  14. }
  15.   if (STORE_SESSIONS == 'db') {
  16.     if (defined('DIR_WS_ADMIN')) {
  17.       if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN + 900)) {
  18.         $SESS_LIFE = (SESSION_TIMEOUT_ADMIN + 900);
  19.       }
  20.     } else {
  21.       if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {
  22.         $SESS_LIFE = 1440;
  23.       }
  24.     }
  25.  
  26.     function _sess_open($save_path, $session_name) {
  27.       return true;
  28.     }
  29.  
  30.     function _sess_close() {
  31.       return true;
  32.     }
  33.  
  34.     function _sess_read($key) {
  35.       global $db;
  36.       $qid = "select value
  37.              from " . TABLE_SESSIONS . "
  38.              where sesskey = '" . zen_db_input($key) . "'
  39.              and expiry > '" . time() . "'";
  40.  
  41.       $value = $db->Execute($qid);
  42.  
  43.       if (isset($value->fields['value']) && $value->fields['value']) {
  44.         $value->fields['value'] = base64_decode($value->fields['value']);
  45.         return $value->fields['value'];
  46.       }
  47.  
  48.       return ("");
  49.     }
  50.  
  51.     function _sess_write($key, $val) {
  52.       global $db;
  53.       if (!is_object($db)) {
  54.         //PHP 5.2.0 bug workaround ...
  55.         $db = new queryFactory();
  56.         $db->connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE, USE_PCONNECT, false);
  57.       }
  58.       $val = base64_encode($val);
  59.  
  60.       global $SESS_LIFE;
  61.  
  62.       $expiry = time() + $SESS_LIFE;
  63.  
  64.       $qid = "select count(*) as total
  65.              from " . TABLE_SESSIONS . "
  66.              where sesskey = '" . zen_db_input($key) . "'";
  67.  
  68.       $total = $db->Execute($qid);
  69.  
  70.       if ($total->fields['total'] > 0) {
  71.         $sql = "update " . TABLE_SESSIONS . "
  72.                set expiry = '" . zen_db_input($expiry) . "', value = '" . zen_db_input($val) . "'
  73.                where sesskey = '" . zen_db_input($key) . "'";
  74.  
  75.         $result = $db->Execute($sql);
  76.  
  77.       } else {
  78.         $sql = "insert into " . TABLE_SESSIONS . "
  79.                values ('" . zen_db_input($key) . "', '" . zen_db_input($expiry) . "', '" .
  80.                          zen_db_input($val) . "')";
  81.  
  82.         $result = $db->Execute($sql);
  83.  
  84.       }
  85.       return (!empty($result) && !empty($result->resource));
  86.     }
  87.  
  88.     function _sess_destroy($key) {
  89.       global $db;
  90.       $sql = "delete from " . TABLE_SESSIONS . " where sesskey = '" . zen_db_input($key) . "'";
  91.       return $db->Execute($sql);
  92.     }
  93.  
  94.     function _sess_gc($maxlifetime) {
  95.       global $db;
  96.       $sql = "delete from " . TABLE_SESSIONS . " where expiry < " . time();
  97.       $db->Execute($sql);
  98.       return true;
  99.     }
  100.  
  101.     session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
  102.   }
  103.  
  104.   function zen_session_start() {
  105.     @ini_set('session.gc_probability', 1);
  106.     @ini_set('session.gc_divisor', 2);
  107.     if (defined('DIR_WS_ADMIN')) {
  108.       @ini_set('session.gc_maxlifetime', (SESSION_TIMEOUT_ADMIN < 900 ? (SESSION_TIMEOUT_ADMIN + 900) : SESSION_TIMEOUT_ADMIN));
  109.     }
  110.     if (preg_replace('/[a-zA-Z0-9]/', '', session_id()) != '')
  111.     {
  112.       zen_session_id(md5(uniqid(rand(), true)));
  113.     }
  114.     $temp = session_start();
  115.     if (!isset($_SESSION['securityToken'])) {
  116.       $_SESSION['securityToken'] = md5(uniqid(rand(), true));
  117.     }
  118.     return $temp;
  119.   }
  120.  
  121.   function zen_session_register($variable) {
  122.     die('This function has been deprecated. Please use Register Globals Off compatible code');
  123.   }
  124.  
  125.   function zen_session_is_registered($variable) {
  126.     die('This function has been deprecated. Please use Register Globals Off compatible code');
  127.   }
  128.  
  129.   function zen_session_unregister($variable) {
  130.     die('This function has been deprecated. Please use Register Globals Off compatible code');
  131.   }
  132.  
  133.   function zen_session_id($sessid = '') {
  134.     if (!empty($sessid)) {
  135.       $tempSessid = $sessid;
  136.       if (preg_replace('/[a-zA-Z0-9]/', '', $tempSessid) != '')
  137.       {
  138.         $sessid = md5(uniqid(rand(), true));
  139.       }
  140.       return session_id($sessid);
  141.     } else {
  142.       return session_id();
  143.     }
  144.   }
  145.  
  146.   function zen_session_name($name = '') {
  147.     if (!empty($name)) {
  148.       $tempName = $name;
  149.       if (preg_replace('/[a-zA-Z0-9]/', '', $tempName) == '') return session_name($name);
  150.       return FALSE;
  151.     } else {
  152.       return session_name();
  153.     }
  154.   }
  155.  
  156.   function zen_session_close() {
  157.     if (function_exists('session_close')) {
  158.       return session_close();
  159.     }
  160.   }
  161.  
  162.   function zen_session_destroy() {
  163.     return session_destroy();
  164.   }
  165.  
  166.   function zen_session_save_path($path = '') {
  167.     if (!empty($path)) {
  168.       return session_save_path($path);
  169.     } else {
  170.       return session_save_path();
  171.     }
  172.   }
  173.  
  174.   function zen_session_recreate() {
  175.     global $http_domain, $https_domain, $current_domain;
  176.       if ($http_domain == $https_domain) {
  177.       $saveSession = $_SESSION;
  178.       $oldSessID = session_id();
  179.       $newSessID = session_id();
  180.       session_id($oldSessID);
  181.       session_id($newSessID);
  182.       if (STORE_SESSIONS == 'db') {
  183.         session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
  184.       }
  185. //      session_start();
  186.       $_SESSION = $saveSession;
  187.       if (IS_ADMIN_FLAG !== true) {
  188.         whos_online_session_recreate($oldSessID, $newSessID);
  189.       }
  190.     } else {
  191.     /*
  192.       $saveSession = $_SESSION;
  193.       $oldSessID = session_id();
  194.       session_regenerate_id();
  195.       $newSessID = session_id();
  196.       session_id($oldSessID);
  197.       session_destroy();
  198.       session_id($newSessID);
  199.       session_set_cookie_params(0, '/', (zen_not_null($http_domain) ? $http_domain : ''));
  200.       session_id($newSessID);
  201.       if (STORE_SESSIONS == 'db') {
  202.         session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
  203.       }
  204.       session_start();
  205.       session_set_cookie_params(0, '/', (zen_not_null($current_domain) ? $current_domain : ''));
  206.       session_start();
  207.       $_SESSION = $saveSession;
  208.       */
  209.     }
  210.   }
  211.  


cron