[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文件
文件大小: 4.61 KiB
MD5: 8c40105d4b36d4cd07b955f713389c91

sessions.php - 关闭高亮
  1. <?php
  2. /**
  3.  * session-related functions used by installer *
  4.  * @package Installer
  5.  * @access private
  6.  * @copyright Copyright 2003-2007 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 7405 2007-11-11 04:20:58Z drbyte $
  10.  */
  11.  
  12.  
  13.   if (STORE_SESSIONS == 'db') {
  14.     if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {
  15.         $SESS_LIFE = 10800;
  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.       global $db;
  28.       $qid = "select value
  29.              from " . TABLE_SESSIONS . "
  30.              where sesskey = '" . zen_db_input($key) . "'
  31.              and expiry > '" . time() . "'";
  32.  
  33.       $value = $db->Execute($qid);
  34.  
  35.       if ($value->fields['value']) {
  36.         return $value->fields['value'];
  37.       }
  38.  
  39.       return false;
  40.     }
  41.  
  42.     function _sess_write($key, $val) {
  43.       global $db;
  44.       global $SESS_LIFE;
  45.  
  46.       $expiry = time() + $SESS_LIFE;
  47.       $value = $val;
  48.  
  49.       $qid = "select count(*) as total
  50.              from " . TABLE_SESSIONS . "
  51.              where sesskey = '" . zen_db_input($key) . "'";
  52.  
  53.       $total = $db->Execute($qid);
  54.  
  55.       if ($total->fields['total'] > 0) {
  56.         $sql = "update " . TABLE_SESSIONS . "
  57.                set expiry = '" . zen_db_input($expiry) . "', value = '" . zen_db_input($value) . "'
  58.                where sesskey = '" . zen_db_input($key) . "'";
  59.  
  60.         return $db->Execute($sql);
  61.  
  62.       } else {
  63.         $sql = "insert into " . TABLE_SESSIONS . "
  64.                values ('" . zen_db_input($key) . "', '" . zen_db_input($expiry) . "', '" .
  65.                          zen_db_input($value) . "')";
  66.  
  67.         return $db->Execute($sql);
  68.  
  69.       }
  70.     }
  71.  
  72.     function _sess_destroy($key) {
  73.       global $db;
  74.       $sql = "delete from " . TABLE_SESSIONS . " where sesskey = '" . zen_db_input($key) . "'";
  75.       return $db->Execute($sql);
  76.     }
  77.  
  78.     function _sess_gc($maxlifetime) {
  79.       global $db;
  80.       $sql = "delete from " . TABLE_SESSIONS . " where expiry < '" . time() . "'";
  81.       $db->Execute($sql);
  82.       return true;
  83.     }
  84.  
  85.     zen_session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
  86.   }
  87.  
  88.   function zen_session_start() {
  89.     if (defined('DIR_WS_ADMIN')) {
  90.       @ini_set('session.gc_maxlifetime', (SESSION_TIMEOUT_ADMIN < 900 ? (SESSION_TIMEOUT_ADMIN + 900) : SESSION_TIMEOUT_ADMIN));
  91.     }
  92.     return session_start();
  93.   }
  94.  
  95.   function zen_session_register($variable) {
  96.     die('This function has been deprecated. Please use Register Globals Off compatible code');
  97.   }
  98.  
  99.   function zen_session_is_registered($variable) {
  100.     die('This function has been deprecated. Please use Register Globals Off compatible code');
  101.   }
  102.  
  103.   function zen_session_unregister($variable) {
  104.     die('This function has been deprecated. Please use Register Globals Off compatible code');
  105.   }
  106.  
  107.   function zen_session_id($sessid = '') {
  108.     if (!empty($sessid)) {
  109.       return session_id($sessid);
  110.     } else {
  111.       return session_id();
  112.     }
  113.   }
  114.  
  115.   function zen_session_name($name = '') {
  116.     if (!empty($name)) {
  117.       return session_name($name);
  118.     } else {
  119.       return session_name();
  120.     }
  121.   }
  122.  
  123.   function zen_session_close() {
  124.     if (function_exists('session_close')) {
  125.       return session_close();
  126.     }
  127.   }
  128.  
  129.   function zen_session_destroy() {
  130.     return session_destroy();
  131.   }
  132.  
  133.   function zen_session_save_path($path = '') {
  134.     if (!empty($path)) {
  135.       return session_save_path($path);
  136.     } else {
  137.       return session_save_path();
  138.     }
  139.   }
  140.  
  141.   function zen_session_recreate() {
  142.     if (PHP_VERSION >= 4.1) {
  143.       $session_backup = $_SESSION;
  144.  
  145.       unset($_COOKIE[zen_session_name()]);
  146.  
  147.       zen_session_destroy();
  148.  
  149.       if (STORE_SESSIONS == 'db') {
  150.         zen_session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc');
  151.       }
  152.  
  153.       zen_session_start();
  154.  
  155.       $_SESSION = $session_backup;
  156.       unset($session_backup);
  157.     }
  158.   }
  159.  
  160.   function zen_session_set_save_handler ($open, $close, $read, $write, $destroy, $gc) {
  161.     if (session_set_save_handler($open, $close, $read, $write, $destroy, $gc) === false) {
  162.       return false;
  163.     }
  164.     # write and close session at the end of script, and before objects are destroyed (required for PHP5.2)
  165.     register_shutdown_function('session_write_close');
  166.     return true;
  167.   }
  168. ?>