[ Index ]
 

Code source de e107 0.7.8

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/e107_handlers/ -> session_handler.php (source)

   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  ?>


Généré le : Sun Apr 1 01:23:32 2007 par Balluche grâce à PHPXref 0.7