[ Index ] |
|
Code source de e107 0.7.8 |
1 <?php 2 /* 3 + ----------------------------------------------------------------------------+ 4 | e107 website system 5 | 6 | ©Steve Dunstan 2001-2002 7 | http://e107.org 8 | jalist@e107.org 9 | 10 | Released under the terms and conditions of the 11 | GNU General Public License (http://gnu.org). 12 | 13 | $Source: /cvsroot/e107/e107_0.7/e107_handlers/session_handler.php,v $ 14 | $Revision: 1.7 $ 15 | $Date: 2006/11/09 09:28:58 $ 16 | $Author: lisa_ $ 17 +----------------------------------------------------------------------------+ 18 */ 19 20 if (!defined('e107_INIT')) { exit; } 21 22 function sess_open($save_path, $session_name) { 23 global $mySQLserver, $mySQLuser, $mySQLpassword, $mySQLdefaultdb, $mySQLprefix, $session_connection; 24 if(defined("USE_PERSISTANT_DB") && USE_PERSISTANT_DB == true){ 25 $session_connection = mysql_pconnect($mySQLserver, $mySQLuser, $mySQLpassword); 26 } else { 27 $session_connection = mysql_connect($mySQLserver, $mySQLuser, $mySQLpassword); 28 } 29 mysql_select_db($mySQLdefaultdb, $session_connection); 30 return true; 31 } 32 33 function sess_close() { 34 return true; 35 } 36 37 38 function sess_read($session_id) { 39 global $session_connection, $session_lifetime, $mySQLprefix, $session_read; 40 if ($result = mysql_query("SELECT * FROM ".$mySQLprefix."session WHERE session_id = '$session_id' AND session_expire > " . time(), $session_connection)) { 41 $session_read = mysql_fetch_assoc($result); 42 return $session_read['session_data']; 43 } else { 44 return FALSE; 45 } 46 } 47 48 function sess_write($session_id, $session_data) { 49 if (!$session_data) { 50 return FALSE; 51 } 52 global $session_connection, $session_lifetime, $mySQLprefix, $session_read; 53 $expiry = time() + $session_lifetime; 54 if ($session_read && $session_read['session_ip'] != get_full_ip()) { 55 session_destroy(); 56 die("Invalid session ID"); 57 } 58 $_session_data = mysql_real_escape_string($session_data); 59 if ($session_read) { 60 $query = "UPDATE ".$mySQLprefix."session SET session_expire = $expiry, session_data = '$_session_data' WHERE session_id = '$session_id' AND session_expire > " . time(); 61 $result = mysql_query($query, $session_connection); 62 } else { 63 $query = "INSERT INTO ".$mySQLprefix."session VALUES ('$session_id', $expiry, ".time().", '".get_full_ip()."', '$_session_data')"; 64 $result = mysql_query($query, $session_connection); 65 } 66 return TRUE; 67 } 68 69 function sess_destroy($session_id) { 70 global $session_connection, $mySQLprefix; 71 $query = "DELETE FROM ".$mySQLprefix."session WHERE session_id = '$session_id'"; 72 $result = mysql_query($query, $session_connection); 73 return TRUE; 74 } 75 76 function sess_gc($session_lifetime) { 77 global $session_connection, $mySQLprefix; 78 $query = "DELETE FROM ".$mySQLprefix."session WHERE session_expire < " . time(); 79 $result = mysql_query($query, $session_connection); 80 return mysql_affected_rows($session_connection); 81 } 82 83 function get_full_ip() { 84 global $e107; 85 $ip_addr = $e107->getip(); 86 $tmp = $_SERVER['REMOTE_ADDR']; 87 $ip_resolved = $e107->get_host_name($tmp); 88 $tmp2 = ($tmp != $ip_resolved && $ip_resolved ? $tmp." - ". $ip_resolved : $tmp2 = $tmp); 89 $full_ip = ($ip_addr != $tmp ? "$ip_addr | $tmp2" : $tmp2); 90 return $full_ip; 91 } 92 93 session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc"); 94 95 e107_ini_set ("session.save_handler", "user" ); 96 $session_cookie_lifetime = 0; 97 $session_cookie_path = '/'; 98 $session_cookie_domain = ''; 99 $session_cache_expire = 60 * 24 * 30; 100 //$session_lifetime = ini_get("session.gc_maxlifetime"); 101 $session_lifetime = 60 * 24 * 30; 102 session_name("PHPSESSID"); 103 if ($_SERVER["HTTPS"] == "on") { 104 $session_cookie_secure = true; 105 } 106 session_set_cookie_params($session_cookie_lifetime, $session_cookie_path, $session_cookie_domain, $session_cookie_secure); 107 if (version_compare(phpversion(), "4.3.0", ">=")) e107_ini_set ("session.use_only_cookies", $session_use_only_cookies ); 108 if (version_compare(phpversion(), "4.2.0", ">=")) session_cache_expire ($session_cache_expire); 109 e107_ini_set ("session.url_rewriter.tags", 'a=href,area=href,frame=src,input=src,form=fakeentry'); 110 111 if ($sql->db_Select("session", "session_id", "session_ip='".get_full_ip()."' ")) { 112 $row = $sql->db_Fetch(); 113 session_id($row['session_id']); 114 } 115 116 session_start(); 117 118 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Apr 1 01:23:32 2007 | par Balluche grâce à PHPXref 0.7 |