Location: PHPKode > projects > Cronus > cronus-1.2.0rc2/includes/sess_h.inc.php
<?php 

require_once('includes/config.inc.php');

 
/* Create new object of class */ 
$ses_class = new session();

/* Define the mysql table you wish to use with
   this class, this table MUST exist. */
$ses_class->ses_table = "Sessions";

/* Change to 'Y' if you want to connect to a db in
   the _open function */
$ses_class->db_con = "Y";

/* Configure the info to connect to MySQL, only required
   if $db_con is set to 'Y' */
$ses_class->db_host = $GLOBALS['config']['mysql']['host']; // MySQL Host
$ses_class->db_user = $GLOBALS['config']['mysql']['user']; //MySQL User
$ses_class->db_pass = $GLOBALS['config']['mysql']['password']; //MySQL Pass
$ses_class->db_dbase = $GLOBALS['config']['mysql']['database']; //MySQL Database

 
/* Change the save_handler to use the class functions */ 
session_set_save_handler (array(&$ses_class, '_open'), 
                          array(&$ses_class, '_close'), 
                          array(&$ses_class, '_read'), 
                          array(&$ses_class, '_write'), 
                          array(&$ses_class, '_destroy'), 
                          array(&$ses_class, '_gc')); 

ini_set('session.hash_function','1');
ini_set('session.hash_bits_per_character','6');
ini_set('session.use_trans_sid','0');
ini_set('session.use_cookies','1');
ini_set('session.cookie_secure','1');

/* Start the session */ 
session_name("CronusID");
session_start(); 

/* Prevent possible hijacking attempts */
session_regenerate_id();
 
class session 
{ 
    public $ses_table; 
    public $db_con = "Y"; 

    public $db_host; // MySQL Host
    public $db_user; //MySQL User
    public $db_pass; //MySQL Pass
    public $db_dbase; //MySQL Database

    /* Create a connection to a database */ 
    function db_connect() { 
        $mysql_connect = @mysql_pconnect ($this->db_host, 
                                          $this->db_user, 
                                          $this->db_pass); 
        $mysql_db = @mysql_select_db ($this->db_dbase); 
 
        if (!$mysql_connect || !$mysql_db) { 
            return FALSE; 
        } else { 
            return TRUE; 
        } 
    } 
 
    /* Open session, if you have your own db connection 
       code, put it in here! */ 
    function _open($path, $name) { 
        if ($this->db_con == "Y") { 
            $this->db_connect(); 
        } 
 
        return TRUE; 
    } 
 
    /* Close session */ 
    function _close() { 
        /* This is used for a manual call of the 
           session gc function */ 
        $this->_gc(0); 
        return TRUE; 
    } 
 
    /* Read session data from database */ 
    function _read($ses_id) { 
        $session_sql = "SELECT * FROM " . $this->ses_table 
                     . " WHERE ses_id = '$ses_id'"; 
        $session_res = @mysql_query($session_sql); 
        if (!$session_res) { 
            return ''; 
        } 
 
        $session_num = @mysql_num_rows ($session_res); 
        if ($session_num > 0) { 
            $session_row = mysql_fetch_assoc ($session_res); 
            $ses_data = $session_row["ses_value"]; 
            return $ses_data; 
        } else { 
            return ''; 
        } 
    } 
 
    /* Write new data to database */ 
    function _write($ses_id, $data) { 
        $session_sql = "UPDATE " . $this->ses_table 
                     . " SET ses_time='" . time() 
                     . "', ses_value='$data' WHERE ses_id='$ses_id'"; 
        $session_res = @mysql_query ($session_sql); 
        if (!$session_res) { 
            return FALSE; 
        } 
        if (mysql_affected_rows ()) { 
            return TRUE; 
        } 
 
        $session_sql = "INSERT INTO " . $this->ses_table 
                     . " (ses_id, ses_time, ses_start, ses_value)" 
                     . " VALUES ('$ses_id', '" . time() 
                     . "', '" . time() . "', '$data')"; 
        $session_res = @mysql_query ($session_sql); 
        if (!$session_res) {     
            return FALSE; 
        }         else { 
            return TRUE; 
        } 
    } 
 
    /* Destroy session record in database */ 
    function _destroy($ses_id) { 
        $session_sql = "DELETE FROM " . $this->ses_table 
                     . " WHERE ses_id = '$ses_id'"; 
        $session_res = @mysql_query ($session_sql); 
        if (!$session_res) { 
            return FALSE; 
        }         else { 
            return TRUE; 
        } 
    } 
 
    /* Garbage collection, deletes old sessions */ 
    function _gc($life) { 
        $ses_life = strtotime("-5 minutes"); 
 
        $session_sql = "DELETE FROM " . $this->ses_table 
                     . " WHERE ses_time < $ses_life"; 
        $session_res = @mysql_query ($session_sql); 
 
 
        if (!$session_res) { 
            return FALSE; 
        }         else { 
            return TRUE; 
        } 
    } 
} 
?> 
Return current item: Cronus