| [ PHPXref.com ] | [ Generated: Sun Jul 20 19:13:40 2008 ] | [ osCommRes 1.2.0 ] |
| [ Index ] [ Variables ] [ Functions ] [ Classes ] [ Constants ] [ Statistics ] | ||
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 4 osCommerce, Open Source E-Commerce Solutions 5 http://www.oscommerce.com 6 7 Copyright (c) 2003 osCommerce 8 9 osCommRes, Services Online 10 http://www.oscommres.com 11 12 Copyright (c) 2005 osCommRes 13 14 Released under the GNU General Public License 15 */ 16 if (STORE_SESSIONS == 'mysql') { 17 if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) { 18 $SESS_LIFE = 1440; 19 } 20 if (defined("SESSION_TIMEOUT_FRONTEND") && (int)SESSION_TIMEOUT_FRONTEND>=0){ 21 $SESS_LIFE=SESSION_TIMEOUT_FRONTEND*60; 22 } 23 function _sess_open($save_path, $session_name) { 24 return true; 25 } 26 27 function _sess_close() { 28 return true; 29 } 30 31 function _sess_read($key) { 32 $value_query = tep_db_query("select value from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "' and expiry > '" . time() . "'"); 33 $value = tep_db_fetch_array($value_query); 34 35 if (isset($value['value'])) { 36 return $value['value']; 37 } 38 39 return false; 40 } 41 42 function _sess_write($key, $val) { 43 global $SESS_LIFE; 44 45 $expiry = time() + $SESS_LIFE; 46 $value = $val; 47 48 $check_query = tep_db_query("select count(*) as total from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'"); 49 $check = tep_db_fetch_array($check_query); 50 51 if ($check['total'] > 0) { 52 return tep_db_query("update " . TABLE_SESSIONS . " set expiry = '" . tep_db_input($expiry) . "', value = '" . tep_db_input($value) . "' where sesskey = '" . tep_db_input($key) . "'"); 53 } else { 54 return tep_db_query("insert into " . TABLE_SESSIONS . " values ('" . tep_db_input($key) . "', '" . tep_db_input($expiry) . "', '" . tep_db_input($value) . "')"); 55 } 56 } 57 58 function _sess_destroy($key) { 59 return tep_db_query("delete from " . TABLE_SESSIONS . " where sesskey = '" . tep_db_input($key) . "'"); 60 } 61 62 function _sess_gc($maxlifetime) { 63 tep_db_query("delete from " . TABLE_SESSIONS . " where expiry < '" . time() . "'"); 64 65 return true; 66 } 67 68 session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc'); 69 } 70 71 function tep_session_start() { 72 global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS; 73 $sane_session_id = true; 74 if (isset($HTTP_GET_VARS[tep_session_name()])) { 75 76 if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_GET_VARS[tep_session_name()]) == false) { 77 78 unset($HTTP_GET_VARS[tep_session_name()]); 79 80 $sane_session_id = false; 81 82 } 83 84 } elseif (isset($HTTP_POST_VARS[tep_session_name()])) { 85 86 if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_POST_VARS[tep_session_name()]) == false) { 87 88 unset($HTTP_POST_VARS[tep_session_name()]); 89 90 $sane_session_id = false; 91 92 } 93 94 } elseif (isset($HTTP_COOKIE_VARS[tep_session_name()])) { 95 96 if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_COOKIE_VARS[tep_session_name()]) == false) { 97 98 $session_data = session_get_cookie_params(); 99 100 setcookie(tep_session_name(), '', time()-42000, $session_data['path'], $session_data['domain']); 101 $sane_session_id = false; 102 103 } 104 105 } 106 107 if ($sane_session_id == false) 108 { 109 tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false)); 110 } 111 return session_start(); 112 } 113 114 115 function tep_session_register($variable) { 116 global $session_started; 117 118 if ($session_started == true) { 119 return session_register($variable); 120 } else { 121 return false; 122 } 123 } 124 125 function tep_session_is_registered($variable) { 126 return session_is_registered($variable); 127 } 128 129 function tep_session_unregister($variable) { 130 return session_unregister($variable); 131 } 132 133 function tep_session_id($sessid = '') { 134 if (!empty($sessid)) { 135 return session_id($sessid); 136 } else { 137 return session_id(); 138 } 139 } 140 141 function tep_session_name($name = '') { 142 if (!empty($name)) { 143 return session_name($name); 144 } else { 145 return session_name(); 146 } 147 } 148 149 function tep_session_close() { 150 if (PHP_VERSION >= '4.0.4') { 151 return session_write_close(); 152 } elseif (function_exists('session_close')) { 153 return session_close(); 154 } 155 } 156 157 function tep_session_destroy() { 158 return session_destroy(); 159 } 160 161 function tep_session_save_path($path = '') { 162 if (!empty($path)) { 163 return session_save_path($path); 164 } else { 165 return session_save_path(); 166 } 167 } 168 169 function tep_session_recreate() { 170 if (PHP_VERSION >= 4.1) { 171 $session_backup = $_SESSION; 172 173 unset($_COOKIE[tep_session_name()]); 174 175 tep_session_destroy(); 176 177 if (STORE_SESSIONS == 'mysql') { 178 session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc'); 179 } 180 181 tep_session_start(); 182 183 $_SESSION = $session_backup; 184 unset($session_backup); 185 } 186 } 187 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| [ Powered by PHPXref - Served by Debian GNU/Linux ] |