function getSessionToken() { // Session Cookie `name` $sessionCookieName = mosMainFrame::sessionCookieName(); // Get Session Cookie `value` $sessioncookie = zmgGetParam($_COOKIE, $sessionCookieName, null); // Session ID / `value` return mosMainFrame::sessionCookieValue($sessioncookie); }
/** * Editmon object contructor. * * @return editmon * @access public */ function editmon() { global $mosConfig_lifetime, $mainframe, $_SESSION; $this->_lifetime = $mosConfig_lifetime; if (is_callable(array('mosMainframe', 'sessionCookieName'))) { // Session Cookie `name` $sessionCookieName = mosMainFrame::sessionCookieName(); // Get Session Cookie `value` $sessioncookie = mosGetParam($_COOKIE, $sessionCookieName, null); // Session ID / `value` $sessionValueCheck = mosMainFrame::sessionCookieValue($sessioncookie); $this->_session_id = $sessionValueCheck; } else { if (isset($mainframe) && is_object($mainframe->_session)) { $this->_session_id = $mainframe->_session->session_id; } else { if (isset($_COOKIE['sessioncookie'])) { $sessioncookie = $_COOKIE['sessioncookie']; $this->_session_id = md5($sessioncookie . $_SERVER['REMOTE_ADDR']); } } } }
/** * Check if user session exists. Adapted from Joomla original code */ function shLookupSession() { global $mainframe; return false; // does not work in 1.5. Not needed anyway, as long as multilingual 303 redirect is not solved $database =& JFactory::getDBO(); // initailize session variables $session = new mosSession($database); $option = strval(strtolower(JRequest::getVar('option'))); $mainframe = new mosMainFrame($database, $option, '.'); // purge expired sessions $session->purge('core'); // can't purge as $mainframe is not initialized yet // Session Cookie `name` // WARNING : I am using the Hack from $sessionCookieName = mosMainFrame::sessionCookieName(); // Get Session Cookie `value` $sessioncookie = strval(JRequest::getVar($sessionCookieName, null, 'COOKIE')); // Session ID / `value` $sessionValueCheck = mosMainFrame::sessionCookieValue($sessioncookie); // Check if existing session exists in db corresponding to Session cookie `value` // extra check added in 1.0.8 to test sessioncookie value is of correct length $ret = false; if ($sessioncookie && strlen($sessioncookie) == 32 && $sessioncookie != '-' && $session->load($sessionValueCheck)) { $ret = true; } unset($mainframe); return $ret; }
/** * Returns the Joomla/Mambo Session ID * @static */ function getSessionId() { global $mainframe; // Joomla >= 1.0.8 if (is_callable(array('mosMainframe', 'sessionCookieName'))) { // Session Cookie `name` $sessionCookieName = mosMainFrame::sessionCookieName(); // Get Session Cookie `value` $sessionCookie = vmGet($_COOKIE, $sessionCookieName, null); // Session ID / `value` return mosMainFrame::sessionCookieValue($sessionCookie); } elseif (is_callable(array('mosSession', 'getCurrent'))) { $session =& mosSession::getCurrent(); return $session->session_id; } elseif (!empty($mainframe->_session->session_id)) { // Set the sessioncookie if its missing // this is needed for joomla sites only return $mainframe->_session->session_id; } else { return session_id(); } }
/** * Generate a unique session id * @return string */ function generateId() { $failsafe = 20; $randnum = 0; while ($failsafe--) { $randnum = md5(uniqid(microtime(), 1)); $new_session_id = mosMainFrame::sessionCookieValue($randnum); if ($randnum != '') { $query = "SELECT {$this->_tbl_key}" . "\n FROM {$this->_tbl}" . "\n WHERE {$this->_tbl_key} = " . $this->_db->Quote($new_session_id); $this->_db->setQuery($query); if (!($result = $this->_db->query())) { die($this->_db->stderr(true)); } if ($this->_db->getNumRows($result) == 0) { break; } } } $this->_session_cookie = $randnum; $this->session_id = $new_session_id; }