| [ Index ] |
|
Code source de osCommerce 2.2ms2-060817 |
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 global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS; 68 69 $sane_session_id = true; 70 71 if (isset($HTTP_GET_VARS[tep_session_name()])) { 72 if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_GET_VARS[tep_session_name()]) == false) { 73 unset($HTTP_GET_VARS[tep_session_name()]); 74 75 $sane_session_id = false; 76 } 77 } elseif (isset($HTTP_POST_VARS[tep_session_name()])) { 78 if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_POST_VARS[tep_session_name()]) == false) { 79 unset($HTTP_POST_VARS[tep_session_name()]); 80 81 $sane_session_id = false; 82 } 83 } elseif (isset($HTTP_COOKIE_VARS[tep_session_name()])) { 84 if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_COOKIE_VARS[tep_session_name()]) == false) { 85 $session_data = session_get_cookie_params(); 86 87 setcookie(tep_session_name(), '', time()-42000, $session_data['path'], $session_data['domain']); 88 89 $sane_session_id = false; 90 } 91 } 92 93 if ($sane_session_id == false) { 94 tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false)); 95 } 96 97 return session_start(); 98 } 99 100 function tep_session_register($variable) { 101 global $session_started; 102 103 if ($session_started == true) { 104 return session_register($variable); 105 } else { 106 return false; 107 } 108 } 109 110 function tep_session_is_registered($variable) { 111 return session_is_registered($variable); 112 } 113 114 function tep_session_unregister($variable) { 115 return session_unregister($variable); 116 } 117 118 function tep_session_id($sessid = '') { 119 if (!empty($sessid)) { 120 return session_id($sessid); 121 } else { 122 return session_id(); 123 } 124 } 125 126 function tep_session_name($name = '') { 127 if (!empty($name)) { 128 return session_name($name); 129 } else { 130 return session_name(); 131 } 132 } 133 134 function tep_session_close() { 135 if (PHP_VERSION >= '4.0.4') { 136 return session_write_close(); 137 } elseif (function_exists('session_close')) { 138 return session_close(); 139 } 140 } 141 142 function tep_session_destroy() { 143 return session_destroy(); 144 } 145 146 function tep_session_save_path($path = '') { 147 if (!empty($path)) { 148 return session_save_path($path); 149 } else { 150 return session_save_path(); 151 } 152 } 153 154 function tep_session_recreate() { 155 if (PHP_VERSION >= 4.1) { 156 $session_backup = $_SESSION; 157 158 unset($_COOKIE[tep_session_name()]); 159 160 tep_session_destroy(); 161 162 if (STORE_SESSIONS == 'mysql') { 163 session_set_save_handler('_sess_open', '_sess_close', '_sess_read', '_sess_write', '_sess_destroy', '_sess_gc'); 164 } 165 166 tep_session_start(); 167 168 $_SESSION = $session_backup; 169 unset($session_backup); 170 } 171 } 172 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Mon Nov 26 19:48:25 2007 | par Balluche grâce à PHPXref 0.7 |
|