aliroSessionData Class Reference

List of all members.

Public Member Functions

 sess_open ()
 sess_close ()
 sess_read ($session_id)
 sess_write ($session_id, $session_data)
 sess_destroy ($session_id)
 sess_destroy_orphans ()
 sess_gc ($timeout)

Static Public Member Functions

static getInstance ()

Private Member Functions

 __construct ()
 __clone ()

Private Attributes

 $db = null

Static Private Attributes

static $instance = __CLASS__


Detailed Description

Definition at line 359 of file aliroSession.php.


Constructor & Destructor Documentation

aliroSessionData::__construct (  )  [private]

Definition at line 363 of file aliroSession.php.

References aliroCoreDatabase::getInstance(), and aliro::getInstance().

00363                                     {
00364         if (aliro::getInstance()->installed) $this->db = aliroCoreDatabase::getInstance();
00365     }


Member Function Documentation

aliroSessionData::__clone (  )  [private]

Definition at line 367 of file aliroSession.php.

00367                                 {
00368         // Enforce singleton
00369     }

static aliroSessionData::getInstance (  )  [static]

Definition at line 371 of file aliroSession.php.

Referenced by aliroSession::__construct(), and aliroSession::purge().

00371                                           {
00372         return is_object(self::$instance) ? self::$instance : (self::$instance = new self::$instance());
00373     }

aliroSessionData::sess_open (  ) 

Definition at line 375 of file aliroSession.php.

00375                                  {
00376         // No action required
00377     }

aliroSessionData::sess_close (  ) 

Definition at line 379 of file aliroSession.php.

00379                                   {
00380         // No action required
00381     }

aliroSessionData::sess_read ( session_id  ) 

Definition at line 383 of file aliroSession.php.

00383                                             {
00384         if (isset($_COOKIE['aliroTempSession'])) return base64_decode($_COOKIE['aliroTempSession']);
00385         if (!isset($_COOKIE['aliroCookieCheck']) OR !isset($this->db)) return '';
00386         $session_id = $this->db->getEscaped($session_id);
00387         $this->db->setQuery("SELECT session_data FROM #__session_data WHERE session_id = '$session_id'");
00388         return base64_decode($this->db->loadResult());
00389     }

aliroSessionData::sess_write ( session_id,
session_data 
)

Definition at line 391 of file aliroSession.php.

00391                                                             {
00392         if ((!isset($_COOKIE['aliroCookieCheck']) AND !isset($_COOKIE['usercookie'])) OR !$this->db) {
00393             if (!headers_sent()) setcookie ('aliroTempSession', base64_encode($session_data), 0, '/');
00394             return true;
00395         }
00396         if (isset($_COOKIE['aliroTempSession'])) setcookie ('aliroTempSession', null, time()-7*24*60*60, '/');
00397         $session_id = $this->db->getEscaped($session_id);
00398         $session_data = base64_encode($session_data);
00399         $this->db->doSQL("INSERT INTO #__session_data (session_id, session_data) VALUES ('$session_id', '$session_data') ON DUPLICATE KEY UPDATE session_data = '$session_data'");
00400         return true;
00401     }

aliroSessionData::sess_destroy ( session_id  ) 

Definition at line 403 of file aliroSession.php.

00403                                                {
00404         setcookie ('aliroTempSession', null, time()-7*24*60*60, '/');
00405         if (!isset($_COOKIE['aliroCookieCheck']) OR !isset($this->db)) return;
00406         $session_id = $this->db->getEscaped($session_id);
00407         $this->db->doSQL("DELETE FROM #__session_data WHERE session_id = '$session_id'");
00408         return true;
00409     }

aliroSessionData::sess_destroy_orphans (  ) 

Definition at line 411 of file aliroSession.php.

00411                                             {
00412         if ($this->db AND 42 == mt_rand(0,49)) {
00413             $this->db->doSQL("DELETE d FROM `#__session_data` AS d LEFT JOIN #__session AS s ON d.session_id = s.session_id WHERE s.session_id IS NULL");
00414             $this->db->doSQL("OPTIMIZE TABLE `#__session_data`");
00415             $this->db->doSQL("OPTIMIZE TABLE `#__session`");
00416         }
00417     }

aliroSessionData::sess_gc ( timeout  ) 

Definition at line 419 of file aliroSession.php.

References aliroSessionFactory::getSession().

00419                                        {
00420         $session = aliroSessionFactory::getSession();
00421         $session->purge($timeout);
00422     }


Member Data Documentation

aliroSessionData::$instance = __CLASS__ [static, private]

Definition at line 360 of file aliroSession.php.

aliroSessionData::$db = null [private]

Definition at line 361 of file aliroSession.php.


The documentation for this class was generated from the following file:

Generated on Wed May 14 13:02:00 2008 for ALIRO by  doxygen 1.5.5