Daha önce yazmış oldugum bir veritabanı session sınıfı var;

/*
    Session tablosu şeması 
    -------------------------------
    CREATE TABLE IF NOT EXISTS `session` (
        `id` int(6) NOT NULL AUTO_INCREMENT,
        `ad` varchar(255) NOT NULL,
        `veri` varchar(255) NOT NULL,
        `bitis` varchar(30) NOT NULL,
        `hash` varchar(50) NOT NULL,
        PRIMARY KEY (`id`),
        UNIQUE KEY `ad` (`ad`)
    ) ENGINE=MEMORY DEFAULT CHARSET=latin5 AUTO_INCREMENT=1;
*/

class DB_Session
{

    /**
     * Kaydedilecek sessionların ömrü (süresi)
     *
     * @access public
     * @var int
     */
    public static $_session_bitis = NULL;
    
    /**
     * Session tablosu adı
     *
     * @access public
     * @var string
     */
    private $_session_tablo = 'session';
    
    /**
     * Session güvenlik hashi
     *
     * @access private
     * @var string
     */
    private $_session_hash = NULL;
    
    /**
     * Session encrypt güvenlik şifresi
     *
     * @access private
     * @var string
     */
    private $_session_sifre = FALSE;

    // }}} 
    // {{{ Konstrüktör
    
    /**
     * Konstrüktör
     *
     * @access public
     * @param  mixed $_session_bitis session bitis süresi
     * @param  mixed $_session_sifre session encrypt sifresi (opsiyonel)
     * @return void
     */
    function __construct($_session_bitis = NULL, $_session_sifre = NULL)
    {
        if ($session_bitis == NULL) {
            $this->_session_bitis = (60 * 5) + time(); // 5 dakika
        }
        if ($_session_sifre != NULL) {
            $this->_session_sifre = $_session_sifre;
        }
        
        $this->_session_bitis = $_session_bitis + time();
        $this->_session_hash  = $this->_sessionHash();
        DB_Session::_tumsessionExtract();
    }
    
    // }}} 
    // {{{ set()
    
    /**
     * Girilen session adı ve verisi ile yeni bir oturum başlatır,
     * Bu oturum verilerini _write() fonksiyonu ile veritabanına kaydeder. 
     *
     * @access public
     * @param  mixed $session_ad session adi
     * @param  mixed $session_veri session içeriği
     * @param  int $session_bitis session süresi
     * @return void / boolean
     */
    public function set($session_ad, $session_veri)
    {
        // Kontrollü session yazma işlemi
        //if ($this->_sessionKontrol($session_ad) == FALSE) {
        if ($this->_session_sifre <> NULL) {
            $session_veri = $this->_session_encrypt($session_veri, 
                                                    $this->_session_sifre);
        }
        if (!$this->_write($session_ad, $session_veri)) {
            return FALSE;
        }
        //}
        return TRUE;
    }

    // }}} 
    // {{{ get()
    
    /**
     * Session çağırma fonksiyonu, veriye göre sonuç döndürür. (true / false)
     *
     * @access public
     * @param mixed $session_adi Çağrılacak Session adı
     * @return mixed
     */
    public function get($session_adi, $alan = NULL)
    {
        // -------------------------
        // Session Hash Extra Güvenlik
        if ($this->_session_hash == NULL) {
            $this->_session_hash = md5(rand(99, 999999) . "_realporn");
        }
        // -------------------------
        
        if ($this->_session_hash == $this->_session_[$session_adi]['hash'])
        {
            if ($this->_session_sifre <> NULL) {
                if ($alan <> NULL) {
                    $session_cikti = $this->_session_[$session_adi]["{$alan}"];
                } else {
                    $session_cikti = $this->_session_decrypt($this->_session_[$session_adi]['veri'], 
                                                             $this->_session_sifre);
                }
            } else {
                if ($alan <> NULL) {
                    $session_cikti = $this->_session_[$session_adi]["{$alan}"];
                } else {
                    $session_cikti = $this->_session_[$session_adi]['veri'];
                }
            }
            if ($session_cikti) {
                return $session_cikti;
            }
        }
        return FALSE;
    }
  
    // }}} 
    // {{{ _write()
    
    /**
     * Girilen session adı ve verisini veritabanına kaydeder.
     *
     * @access private
     * @param  mixed $session_ad session adi
     * @param  mixed $session_veri session içeriği
     * @param  int $session_bitis session süresi
     * @return void / boolean
     */
    private function _write($session_ad, $session_veri)
    {
        if ($session_ad != NULL 
            && $session_veri != NULL) {
            
            if ($this->_session_hash != NULL 
                && $this->_session_bitis != NULL) {
                // yazma sorgusu
                $this->_write_sql = @mysql_query(
                                        "INSERT INTO `{$this->_session_tablo}` (
                                             `ad`, `veri`, `bitis`, `hash` 
                                         ) VALUES (
                                             '{$session_ad}', '{$session_veri}', 
                                             '{$this->_session_bitis}', '{$this->_session_hash}' 
                                         )
                                     ");
                if ($this->_write_sql) {
                    return TRUE;
                } 
            }
        }
        return FALSE;
    }

    // }}} 
    // {{{ delete()
    
    /**
     * Adı girilen sessionu siler.
     *
     * @access private
     * @param  mixed $session_ad session dosya adi
     * @return void / boolean
     */
    public function delete($session_ad)
    {
        $this->_delete_sql = @mysql_query("DELETE FROM `{$this->_session_tablo}` 
                                           WHERE `ad` = '{$session_ad}' 
                                           AND `hash` = '{$this->_session_hash}'");
        if (!$this->_delete_sql) {
            return FALSE;
        }
        return TRUE;
    }
    
    // }}} 
    // {{{ _session_encrypt()
    
    /**
     * Session verilerini, daha önceden girilmiş key 'e göre şifreler
     *
     * @access private
     * @param  mixed $session_veri session veri
     * @param  mixed $session_key session key
     * @return void / boolean
     */
    private function _session_encrypt($session_veri, $session_key)
    {
        for ($i = 1; $i <= strlen($session_veri); $i++) { 
            $session_encrypt_cikti .= chr(ord(substr($session_veri, $i - 1, 1)) 
                                   + ord(substr($session_key, ($i % strlen($session_key)) 
                                   - 1, 1))); 
        } 
        return base64_encode($session_encrypt_cikti);
    }

    // }}} 
    // {{{ _session_encrypt()
    
    /**
     * Session verileri şifrelenmişse daha önceden girilmiş olan key 'e göre çözer
     *
     * @access private
     * @param  mixed $session_veri session veri
     * @param  mixed $session_key session key
     * @return void / boolean
     */
    private function _session_decrypt($_session_veri, $session_key)
    {
        $session_veri = base64_decode($_session_veri);
        for ($i = 1; $i <= strlen($session_veri); $i++) { 
            $session_decrypt_cikti .= chr(ord(substr($session_veri, $i - 1, 1)) 
                                   - ord(substr($session_key, ($i % strlen($session_key)) 
                                   - 1, 1)));
        } 
        return $session_decrypt_cikti;
    }

    // }}} 
    // {{{ _sessionKontrol()
    
    /**
     * session kontrol fonksiyonu
     *
     * @access private
     * @return void
     */
    private function _tumsessionExtract()
    {
        $liste_sql = mysql_query("SELECT * FROM {$this->_session_tablo}");
        while ($session = $liste_sql->fetchRow()) {
        
            // session Süre kontrolü
            $bitis_kontrol = DB_Session::_bitisKontrol($session['bitis']);

            if ($bitis_kontrol === TRUE) { // session süresi bittiyse
                DB_Session::delete($session['ad']);
                unset($this->_session_[$session['ad']]);
            } else {
                $this->_session_[$session['ad']]['veri']  = trim($session['veri']);
                $this->_session_[$session['ad']]['bitis'] = trim($session['bitis']);
                $this->_session_[$session['ad']]['hash']  = trim($session['hash']);
                $this->_session_[$session['ad']]['ad']    = trim($session['ad']);
            }
        }
    }
    
    // }}} 
    // {{{ _bitisKontrol()
    
    /**
     * Session suresinin bitip bitmediğini kontrol etme fonksiyonu.
     *
     * @access private
     * @param mixed $session_bitis Session bitiş süresi
     * @return boolean
     */
    private function _bitisKontrol($session_bitis)
    {
        if ($session_bitis < time()) {
            return TRUE;
        }
        return FALSE;
    }
    
    // }}} 
    // {{{ _sessionKontrol()
    
    /**
     * Girilen session adına göre Session varlığını kontrol etme fonksiyonu.
     *
     * @access private
     * @param mixed $session_ad Session adı
     * @return boolean
     */
    private function _sessionKontrol($session_ad)
    {
        $arama_sql = mysql_query("SELECT `id` 
                                 FROM `{$this->_session_tablo}` 
                                 WHERE `ad` = '{$session_ad}' 
                                 AND `hash` = '{$this->_session_hash}'");
        if ($arama_sql->numRows() > 0) {
            return TRUE;
        }
        return FALSE;
    }
    
    // }}} 
    // {{{ _sessionHash()
    
    /**
     * Her kullanıcıya ayrı session atamak, çakışma önlemek ve güvenlik için,
     * veritabanına yazılmak üzere, md5 formatında oturum hash 'ı uretir.
     *
     * @access private
     * @return void
     */
    private function _sessionHash()
    {
        return sha1(md5($_SERVER['REMOTE_ADDR']));
    }
}
kullanım;
$session_suresi      = '7200'; // 2 saat
$session_encrypt_key = 'gizlişifre';
$session = new DB_Session($session_suresi, $session_encrypt_key);

// kaydetme
$session->set('hede');

// çağırma
$session->get('hede');