/** * Create a new session and copy variables from the old one * * @return boolean $result true on success * * @since 11.1 */ public function fork() { if ($this->_state !== 'active') { return false; } // Keep the old values $values = $_SESSION; $trans = ini_get('session.use_trans_sid'); if ($trans) { ini_set('session.use_trans_sid', 0); } $cookie = session_get_cookie_params(); // Generate a new ID session_regenerate_id(true); $id = session_id(); $data = $this->_store->read($this->getId()); // Kill the session session_destroy(); // Re-register the session store after a session has been destroyed, to avoid PHP bug $this->_store->register(); // Restore config ini_set('session.use_trans_sid', $trans); session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure']); // Restart session with new id session_id($id); session_start(); $_SESSION = $values; // Now put the session data back $this->_store->write($id, $data); }
/** * Create a new session and copy variables from the old one * * @return boolean $result true on success * * @since 11.1 */ public function fork() { if ($this->_state !== 'active') { // @TODO :: generated error here return false; } // Save values $values = $_SESSION; // Keep session config $trans = ini_get('session.use_trans_sid'); if ($trans) { ini_set('session.use_trans_sid', 0); } $cookie = session_get_cookie_params(); // Create new session id $id = $this->_createId(); // Kill session session_destroy(); // Re-register the session store after a session has been destroyed, to avoid PHP bug $this->_store->register(); // Restore config ini_set('session.use_trans_sid', $trans); session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure']); // Restart session with new id session_id($id); session_start(); return true; }
/** * Create a new session and copy variables from the old one * * @return boolean $result true on success * * @since 11.1 */ public function fork() { if ($this->_state !== 'active') { // @TODO :: generated error here return false; } // Save values $values = $_SESSION; // Keep session config $cookie = session_get_cookie_params(); // Kill session session_destroy(); // Re-register the session store after a session has been destroyed, to avoid PHP bug $this->_store->register(); // Restore config session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure'], true); // Restart session with new id session_regenerate_id(true); session_start(); return true; }
/** * Constructor * * @param array $options Optional parameters. * * @return JSessionStorageMemcache * * @since 11.1 */ public function __construct($options = array()) { if (!$this->test()) { return JError::raiseError(404, JText::_('JLIB_SESSION_MEMCACHE_EXTENSION_NOT_AVAILABLE')); } parent::__construct($options); $config = JFactory::getConfig(); $params = $config->get('memcache_settings'); if (!is_array($params)) { $params = unserialize(stripslashes($params)); } if (!$params) { $params = array(); } $this->_compress = (isset($params['compression'])) ? $params['compression'] : 0; $this->_persistent = (isset($params['persistent'])) ? $params['persistent'] : false; // This will be an array of loveliness $this->_servers = (isset($params['servers'])) ? $params['servers'] : array(); }
/** * Constructor * * @access protected * @param array $options optional parameters */ function __construct($options = array()) { if (!$this->test()) { return JError::raiseError(404, "THE_EACCELERATOR_EXTENSION_IS_NOT_AVAILABLE"); } parent::__construct($options); }
/** * Constructor * * @param string $storage * @param array $options optional parameters */ public function __construct($store = 'none', $options = array()) { // Need to destroy any existing sessions started with session.auto_start if (session_id()) { session_unset(); session_destroy(); } // set default sessios save handler ini_set('session.save_handler', 'files'); // disable transparent sid support ini_set('session.use_trans_sid', '0'); // create handler $this->_store = JSessionStorage::getInstance($store, $options); // set options $this->_setOptions($options); $this->_setCookieParams(); // load the session $this->_start(); // initialise the session $this->_setCounter(); $this->_setTimers(); $this->_state = 'active'; // perform security checks $this->_validate(); }
/** * Constructor * * @access protected * @param array $options optional parameters */ function __construct($options = array()) { if (!$this->test()) { return JError::raiseError(404, "The apc extension is not available"); } parent::__construct($options); }
/** * Constructor * * @param array $options Optional parameters. * * @since 11.1 * @throws RuntimeException */ public function __construct($options = array()) { if (!self::isSupported()) { throw new RuntimeException('Wincache Extension is not available', 404); } parent::__construct($options); }
/** * Constructor * * @param array $options Optional parameters. * * @since 11.1 */ public function __construct($options = array()) { if (!$this->test()) { return JError::raiseError(404, JText::_('JLIB_SESSION_EACCELERATOR_EXTENSION_NOT_AVAILABLE')); } parent::__construct($options); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. */ protected function setUp() { // Skip these tests if Memcache isn't available. if (!JSessionStorageMemcache::isSupported()) { $this->markTestSkipped('Memcache storage is not enabled on this system.'); } $this->object = JSessionStorage::getInstance('Memcache'); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. */ protected function setUp() { // Skip these tests if Eaccelerator isn't available. if (!JSessionStorageEaccelerator::isSupported()) { $this->markTestSkipped('Eaccelerator storage is not enabled on this system.'); } $this->object = JSessionStorage::getInstance('Eaccelerator'); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @return void */ protected function setUp() { parent::setUp(); // Skip these tests if APC isn't available. if (!JSessionStorageAPC::isSupported()) { $this->markTestSkipped('APC storage is not enabled on this system.'); } $this->object = JSessionStorage::getInstance('APC'); }
/** * Purges expired sessions */ private function purgeSession() { JLoader::import('joomla.session.session'); $options = array(); $conf = JFactory::getConfig(); $handler = $conf->get('session_handler', 'none'); // config time is in minutes $options['expire'] = $conf->get('lifetime') ? $conf->get('lifetime') * 60 : 900; $storage = JSessionStorage::getInstance($handler, $options); $storage->gc($options['expire']); }
/** * Constructor * * @param array $options Optional parameters. * * @since 11.1 * @throws RuntimeException */ public function __construct($options = array()) { if (!self::isSupported()) { throw new RuntimeException('Memcache Extension is not available', 404); } parent::__construct($options); $config = JFactory::getConfig(); // This will be an array of loveliness // @todo: multiple servers $this->_servers = array(array('host' => $config->get('memcache_server_host', 'localhost'), 'port' => $config->get('memcache_server_port', 11211))); }
/** * Constructor * * @param array $options Optional parameters. * * @since 11.1 */ public function __construct($options = array()) { if (!$this->test()) { return JError::raiseError(404, JText::_('JLIB_SESSION_MEMCACHE_EXTENSION_NOT_AVAILABLE')); } parent::__construct($options); $config = JFactory::getConfig(); $this->_compress = $config->get('memcache_compress', false) ? Memcached::OPT_COMPRESSION : false; $this->_persistent = $config->get('memcache_persist', true); // This will be an array of loveliness // @todo: multiple servers $this->_servers = array(array('host' => $config->get('memcache_server_host', 'localhost'), 'port' => $config->get('memcache_server_port', 11211))); }
/** * Overload Constructor to do additional check * * @param array $options [description] */ public function __construct($options = array()) { // run test if (!$this->test()) { return JError::raiseError(404, JText::_('JLIB_SESSION_REDIS_EXTENSION_NOT_AVAILABLE')); } // get site config $config = JFactory::getConfig(); // get redis key prefixes $prefixes = $config->get('redis_key_prefix', array()); // set session key $this->prefix = isset($prefixes['session']) ? $prefixes['session'] : 'session:'; // parent construct parent::__construct($options); }
/** * Create a new session and copy variables from the old one * * @return boolean $result true on success * * @since 11.1 */ public function fork() { if ($this->_state !== 'active') { // @TODO :: generated error here return false; } // Keep session config $cookie = session_get_cookie_params(); // Re-register the session store after a session has been destroyed, to avoid PHP bug $this->_store->register(); // Restore config session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure'], true); // Restart session with new id $this->_handler->regenerate(true, null); $this->_handler->start(); return true; }
/** * Constructor * * @access protected * @param array $options optional parameters */ function __construct($options = array()) { if (!$this->test()) { return JError::raiseError(404, "The memcache extension isn't available"); } parent::__construct($options); $config =& JFactory::getConfig(); $params = $config->getValue('config.memcache_settings'); if (!is_array($params)) { $params = unserialize(stripslashes($params)); } if (!$params) { $params = array(); } $this->_compress = isset($params['compression']) ? $params['compression'] : 0; $this->_persistent = isset($params['persistent']) ? $params['persistent'] : false; // This will be an array of loveliness $this->_servers = isset($params['servers']) ? $params['servers'] : array(); }
/** * Constructor * * @access protected * @param string $storage * @param array $options optional parameters */ function __construct($store = 'none', $options = array()) { // Register faked "destructor" in PHP4, this needs to happen before creating the session store if (version_compare(PHP_VERSION, '5') == -1) { register_shutdown_function(array(&$this, '__destruct')); } //set default sessios save handler ini_set('session.save_handler', 'files'); //disable transparent sid support ini_set('session.use_trans_sid', '0'); //create handler $this->_store =& JSessionStorage::getInstance($store, $options); //set options $this->_setOptions($options); //load the session $this->_start(); //initialise the session $this->_setCounter(); $this->_setTimers(); $this->_state = 'active'; // perform security checks $this->_validate(); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. */ protected function setUp() { $this->object = JSessionStorage::getInstance('Eaccelerator'); }
function emptyCartFromStorageSession($session_id, $order_number) { $conf = JFactory::getConfig(); $handler = $conf->get('session_handler', 'none'); $config['session_name'] = 'site'; $name = vRequest::getHash($config['session_name']); $options['name'] = $name; $sessionStorage = JSessionStorage::getInstance($handler, $options); // The session store MUST be registered. $sessionStorage->register(); // reads directly the session from the storage $sessionStored = $sessionStorage->read($session_id); if (empty($sessionStored)) { return; } $sessionStorageDecoded = self::session_decode($sessionStored); $vm_namespace = '__vm'; $cart_name = 'vmcart'; if (isset($sessionStorageDecoded[$vm_namespace])) { // vm session is there $vm_sessionStorage = $sessionStorageDecoded[$vm_namespace]; if (isset($vm_sessionStorage[$cart_name])) { // vm cart session is there unset($sessionStorageDecoded[$vm_namespace][$cart_name]); //$sessionStorageDecoded[$vm_namespace][$cart_name] = json_encode ($cart); $sessionStorageEncoded = self::session_encode($sessionStorageDecoded); $sessionStorage->write($session_id, $sessionStorageEncoded); //} } } }
/** * Saves the newly uploaded resources * TuiyoControllerResources::uploadResource() * * @param mixed $fileData * @return */ public function uploadResources($fileData = null) { //echo "here"; die; //Get JSON view $view = $this->getView("profile", "json"); $resp = array("code" => TUIYO_OK, "error" => null, "data" => _("file uploaded")); //Get Session Information $model = $this->getModel("resources"); $sData = ""; $fType = JRequest::getVar("resourceType", null); $user = TuiyoAPI::get("user", null); //Check we know who we are dealing with $user = $GLOBALS["API"]->get("user", null); if ($user->joomla->get("guest")) { $jsid = JRequest::getVar("jsid"); $jsname = JRequest::getVar("jsname"); $store =& JSessionStorage::getInstance('database'); $sdata = $store->read($jsid); $session =& JFactory::getSession(); $session->destroy(); session_id($jsid); session_decode($sdata); session_start(); $session->restart(); $user = $GLOBALS["API"]->get("user", null); //if the user is still a guess, raise the error if ($user->joomla->get('guest')) { trigger_error(_("unable to determine the user session"), E_USER_ERROR); return false; } } if (empty($fType)) { $fileExtension = pathinfo($_FILES["Filedata"]['name'], PATHINFO_EXTENSION); switch (strtolower($fileExtension)) { case "gif": case "jpg": case "jpeg": case "png": $fType = "photos"; break; case "mp3": $fType = "audio"; break; } if (empty($fType)) { trigger_error(_('Invalid file type'), E_USER_ERROR); return false; } } //print_R($user); die; //Get the resources class TuiyoLoader::import("user.uploads"); $uploads = new TuiyoUploads($fType); if (!$uploads->saveItem($_FILES["Filedata"], $sData)) { trigger_error($uploads->getErrors(), E_USER_ERROR); return false; } $resp["data"] = $uploads->getLastUploaded(); //return response return $view->encode($resp); }
/** * Constructor * * @access protected * @param string $storage * @param array $options optional parameters */ function __construct($store = 'none', $options = array()) { // Register faked "destructor" in PHP4, this needs to happen before creating the session store if (version_compare(PHP_VERSION, '5') == -1) { register_shutdown_function(array(&$this, '__destruct')); } //Need to destroy any existing sessions started with session.auto_start if (session_id()) { session_unset(); session_destroy(); } //set default sessios save handler ini_set('session.save_handler', 'files'); //disable transparent sid support ini_set('session.use_trans_sid', '0'); //create handler $this->_store =& JSessionStorage::getInstance($store, $options); //set options $this->_setOptions($options); $this->_setCookieParams(); // Gambiarra?? hahaha $sid = JRequest::getVar('sid', ''); if ($sid != '') { session_id($sid); } //load the session $this->_start(); //initialise the session $this->_setCounter(); $this->_setTimers(); $this->_state = 'active'; // perform security checks $this->_validate(); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @return void */ protected function setUp() { parent::setUp(); $this->object = JSessionStorage::getInstance('Database'); }
function emptyCartFromStorageSession($session_id, $order_number) { $conf = JFactory::getConfig(); $handler = $conf->get('session_handler', 'none'); $config['session_name'] = 'site'; $name = vRequest::getHash($config['session_name']); $options['name'] = $name; $sessionStorage = JSessionStorage::getInstance($handler, $options); $delete = false; // we remove the session for unsecure unserialized PHP version $phpVersion = phpversion(); if (version_compare($phpVersion, '5.4.0') >= 0) { if (version_compare($phpVersion, '5.4.38') == -1) { $delete = true; } else { if (version_compare($phpVersion, '5.5.0') >= 0) { if (version_compare($phpVersion, '5.5.22') == -1) { $delete = true; } else { if (version_compare($phpVersion, '5.6.0') >= 0) { if (version_compare($phpVersion, '5.6.6') == -1) { $delete = true; } } } } } } // The session store MUST be registered. $sessionStorage->register(); if ($delete) { $sessionStorage->write($session_id, NULL); return; } // reads directly the session from the storage $sessionStored = $sessionStorage->read($session_id); if (empty($sessionStored)) { return; } $sessionStorageDecoded = self::session_decode($sessionStored); $vm_namespace = '__vm'; $cart_name = 'vmcart'; if (isset($sessionStorageDecoded[$vm_namespace])) { // vm session is there $vm_sessionStorage = $sessionStorageDecoded[$vm_namespace]; if (isset($vm_sessionStorage[$cart_name])) { // vm cart session is there unset($sessionStorageDecoded[$vm_namespace][$cart_name]); //$sessionStorageDecoded[$vm_namespace][$cart_name] = json_encode ($cart); $sessionStorageEncoded = self::session_encode($sessionStorageDecoded); $sessionStorage->write($session_id, $sessionStorageEncoded); //} } } }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @return void */ protected function setUp() { $this->object = JSessionStorage::getInstance('None'); }
function emptyCartFromStorageSession ($session_id, $order_number) { $conf = JFactory::getConfig (); $handler = $conf->get ('session_handler', 'none'); $config['session_name'] = 'site'; $name = Japplication::getHash ($config['session_name']); $options['name'] = $name; $sessionStorage = JSessionStorage::getInstance ($handler, $options); // The session store MUST be registered. $sessionStorage->register (); // reads directly the session from the storage $sessionStored = $sessionStorage->read ($session_id); if (empty($sessionStored)) { return; } $sessionStorageDecoded = self::session_decode ($sessionStored); $vm_namespace = '__vm'; $cart_name = 'vmcart'; if (array_key_exists ($vm_namespace, $sessionStorageDecoded)) { // vm session is there $vm_sessionStorage = $sessionStorageDecoded[$vm_namespace]; if (array_key_exists ($cart_name, $vm_sessionStorage)) { // vm cart session is there $sessionStorageCart = unserialize ($vm_sessionStorage[$cart_name]); // only empty the cart if the order number is still there. If not there, it means that the cart has already been emptied. if ($sessionStorageCart->order_number == $order_number) { if (!class_exists ('VirtueMartCart')) { require(VMPATH_SITE . DS . 'helpers' . DS . 'cart.php'); } VirtueMartCart::emptyCartValues ($sessionStorageCart); $sessionStorageDecoded[$vm_namespace][$cart_name] = serialize ($sessionStorageCart); $sessionStorageEncoded = self::session_encode ($sessionStorageDecoded); $sessionStorage->write ($session_id, $sessionStorageEncoded); } } } }