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 332 of file aliroSession.php.


Constructor & Destructor Documentation

aliroSessionData::__construct (  )  [private]

Definition at line 336 of file aliroSession.php.

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

00336                                     {
00337         if (aliro::getInstance()->installed) $this->db = aliroCoreDatabase::getInstance();
00338     }


Member Function Documentation

aliroSessionData::__clone (  )  [private]

Definition at line 340 of file aliroSession.php.

00340                                 {
00341         // Enforce singleton
00342     }

static aliroSessionData::getInstance (  )  [static]

Definition at line 344 of file aliroSession.php.

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

00344                                           {
00345         return is_object(self::$instance) ? self::$instance : (self::$instance = new self::$instance());
00346     }

aliroSessionData::sess_open (  ) 

Definition at line 348 of file aliroSession.php.

00348                                  {
00349         // No action required
00350     }

aliroSessionData::sess_close (  ) 

Definition at line 352 of file aliroSession.php.

00352                                   {
00353         // No action required
00354     }

aliroSessionData::sess_read ( session_id  ) 

Definition at line 356 of file aliroSession.php.

00356                                             {
00357         if (isset($_COOKIE['aliroTempSession'])) return base64_decode($_COOKIE['aliroTempSession']);
00358         if (!isset($_COOKIE['aliroCookieCheck']) OR !isset($this->db)) return '';
00359         $session_id = $this->db->getEscaped($session_id);
00360         $this->db->setQuery("SELECT session_data FROM #__session_data WHERE session_id = '$session_id'");
00361         return base64_decode($this->db->loadResult());
00362     }

aliroSessionData::sess_write ( session_id,
session_data 
)

Definition at line 364 of file aliroSession.php.

00364                                                             {
00365         if ((!isset($_COOKIE['aliroCookieCheck']) AND !isset($_COOKIE['usercookie'])) OR !$this->db) {
00366             if (!headers_sent()) setcookie ('aliroTempSession', base64_encode($session_data), 0, '/');
00367             return true;
00368         }
00369         if (isset($_COOKIE['aliroTempSession'])) setcookie ('aliroTempSession', null, time()-7*24*60*60, '/');
00370         $session_id = $this->db->getEscaped($session_id);
00371         $session_data = base64_encode($session_data);
00372         $this->db->doSQL("INSERT INTO #__session_data (session_id, session_data) VALUES ('$session_id', '$session_data') ON DUPLICATE KEY UPDATE session_data = '$session_data'");
00373         return true;
00374     }

aliroSessionData::sess_destroy ( session_id  ) 

Definition at line 376 of file aliroSession.php.

00376                                                {
00377         setcookie ('aliroTempSession', null, time()-7*24*60*60, '/');
00378         if (!isset($_COOKIE['aliroCookieCheck']) OR !isset($this->db)) return;
00379         $session_id = $this->db->getEscaped($session_id);
00380         $this->db->doSQL("DELETE FROM #__session_data WHERE session_id = '$session_id'");
00381         return true;
00382     }

aliroSessionData::sess_destroy_orphans (  ) 

Definition at line 384 of file aliroSession.php.

00384                                             {
00385         if ($this->db AND 42 == mt_rand(0,49)) {
00386             $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");
00387             $this->db->doSQL("OPTIMIZE TABLE `#__session_data`");
00388             $this->db->doSQL("OPTIMIZE TABLE `#__session`");
00389         }
00390     }

aliroSessionData::sess_gc ( timeout  ) 

Definition at line 392 of file aliroSession.php.

References aliroSessionFactory::getSession().

00392                                        {
00393         $session = aliroSessionFactory::getSession();
00394         $session->purge($timeout);
00395     }


Member Data Documentation

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

Definition at line 333 of file aliroSession.php.

aliroSessionData::$db = null [private]

Definition at line 334 of file aliroSession.php.


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

Generated on Thu Apr 17 13:03:31 2008 for ALIRO by  doxygen 1.5.5