JEMBOT MAWOT Bypass Shell
<?php
/**
* Part of the Joomla Framework Session Package
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
namespace Joomla\Session\Storage;
use Joomla\Session\Storage;
use Joomla\Database\DatabaseDriver;
/**
* Database session storage handler for PHP
*
* @see http://www.php.net/manual/en/function.session-set-save-handler.php
* @since 1.0
* @deprecated 2.0 The Storage class chain will be removed
*/
class Database extends Storage
{
/**
* The DatabaseDriver to use when querying.
*
* @var DatabaseDriver
* @since 1.0
* @deprecated 2.0
*/
protected $db;
/**
* Constructor
*
* @param array $options Optional parameters. A `dbo` options is required.
*
* @since 1.0
* @throws \RuntimeException
* @deprecated 2.0
*/
public function __construct($options = array())
{
if (isset($options['db']) && ($options['db'] instanceof DatabaseDriver))
{
parent::__construct($options);
$this->db = $options['db'];
}
else
{
throw new \RuntimeException(
sprintf('The %s storage engine requires a `db` option that is an instance of Joomla\\Database\\DatabaseDriver.', __CLASS__)
);
}
}
/**
* Read the data for a particular session identifier from the SessionHandler backend.
*
* @param string $id The session identifier.
*
* @return string The session data.
*
* @since 1.0
* @deprecated 2.0
*/
public function read($id)
{
try
{
// Get the session data from the database table.
$query = $this->db->getQuery(true);
$query->select($this->db->quoteName('data'))
->from($this->db->quoteName('#__session'))
->where($this->db->quoteName('session_id') . ' = ' . $this->db->quote($id));
$this->db->setQuery($query);
return (string) $this->db->loadResult();
}
catch (\Exception $e)
{
return false;
}
}
/**
* Write session data to the SessionHandler backend.
*
* @param string $id The session identifier.
* @param string $data The session data.
*
* @return boolean True on success, false otherwise.
*
* @since 1.0
* @deprecated 2.0
*/
public function write($id, $data)
{
try
{
$query = $this->db->getQuery(true);
$query->update($this->db->quoteName('#__session'))
->set($this->db->quoteName('data') . ' = ' . $this->db->quote($data))
->set($this->db->quoteName('time') . ' = ' . $this->db->quote((int) time()))
->where($this->db->quoteName('session_id') . ' = ' . $this->db->quote($id));
// Try to update the session data in the database table.
$this->db->setQuery($query);
if (!$this->db->execute())
{
return false;
}
// Since $this->db->execute did not throw an exception the query was successful.
// Either the data changed, or the data was identical. In either case we are done.
return true;
}
catch (\Exception $e)
{
return false;
}
}
/**
* Destroy the data for a particular session identifier in the SessionHandler backend.
*
* @param string $id The session identifier.
*
* @return boolean True on success, false otherwise.
*
* @since 1.0
* @deprecated 2.0
*/
public function destroy($id)
{
try
{
$query = $this->db->getQuery(true);
$query->delete($this->db->quoteName('#__session'))
->where($this->db->quoteName('session_id') . ' = ' . $this->db->quote($id));
// Remove a session from the database.
$this->db->setQuery($query);
return (boolean) $this->db->execute();
}
catch (\Exception $e)
{
return false;
}
}
/**
* Garbage collect stale sessions from the SessionHandler backend.
*
* @param integer $lifetime The maximum age of a session.
*
* @return boolean True on success, false otherwise.
*
* @since 1.0
* @deprecated 2.0
*/
public function gc($lifetime = 1440)
{
// Determine the timestamp threshold with which to purge old sessions.
$past = time() - $lifetime;
try
{
$query = $this->db->getQuery(true);
$query->delete($this->db->quoteName('#__session'))
->where($this->db->quoteName('time') . ' < ' . $this->db->quote((int) $past));
// Remove expired sessions from the database.
$this->db->setQuery($query);
return (boolean) $this->db->execute();
}
catch (\Exception $e)
{
return false;
}
}
}
xxxxx1.0, XXX xxxx