throw new \RuntimeException('Failed to start the session: already started by PHP.');
}
if (ini_get('session.use_cookies') && headers_sent($file, $line))
{
throw new \RuntimeException(
sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line)
);
}
if (!session_start())
$this->setId($session_clean);
$cookie->set($session_name, '', time() - 3600);
}
}
parent::start();
// Try loading data from the session
if (isset($_SESSION['joomla']) && !empty($_SESSION['joomla'])) {
$this->data = unserialize(base64_decode($_SESSION['joomla']));
}
if ($this->isStarted())
{
return;
}
$this->store->start();
$this->setState(SessionState::ACTIVE);
// Initialise the session
$this->setCounter();
*/
public function has($name)
{
if (!$this->isActive())
{
$this->start();
}
return $this->store->has($name);
}
$name = $args[2] . '.' . $name;
}
}
if (parent::has($name)) {
// Parent is used because of b/c, can be changed in Joomla 5
return parent::get($name, $default);
}
/*
*/
public function getMessageQueue($clear = false)
{
// For empty queue, if messages exists in the session, enqueue them.
if (!\count($this->messageQueue)) {
$sessionQueue = $this->getSession()->get('application.queue', []);
if ($sessionQueue) {
$this->messageQueue = $sessionQueue;
$this->getSession()->set('application.queue', []);
}
'message' => $inputFilter->clean($msg, 'html'),
'type' => $inputFilter->clean(strtolower($type), 'cmd'),
];
// For empty queue, if messages exists in the session, enqueue them first.
$messages = $this->getMessageQueue();
if (!\in_array($message, $this->messageQueue)) {
// Enqueue the message.
$this->messageQueue[] = $message;
}
throw new \InvalidArgumentException(Text::sprintf('JERROR_COULD_NOT_FIND_TEMPLATE', $original_tmpl));
}
}
}
} elseif (!is_file(JPATH_THEMES . '/' . $template->template . '/index.php')) {
$this->enqueueMessage(Text::_('JERROR_ALERTNOTEMPLATE'), 'error');
// Try to find data for 'cassiopeia' template
$original_tmpl = $template->template;
foreach ($templates as $tmpl) {
public function render(\Throwable $error): string
{
$app = Factory::getApplication();
// Get the current template from the application
$template = $app->getTemplate(true);
// Push the error object into the document
$this->getDocument()->setError($error);
// Add registry file for the template asset
// Reset the document object in the factory, this gives us a clean slate and lets everything render properly
Factory::$document = $renderer->getDocument();
Factory::getApplication()->loadDocument(Factory::$document);
$data = $renderer->render($error);
// If nothing was rendered, just use the message from the Exception
if (empty($data)) {
$data = $error->getMessage();
}
* @since 3.10.0
*/
public static function handleException(\Throwable $error)
{
static::logException($error);
static::render($error);
}
/**
* Render the error page based on an exception.
*
);
// Trigger the onError event.
$this->triggerEvent('onError', $event);
ExceptionHandler::handleException($event->getError());
}
// Trigger the onBeforeRespond event.
$this->getDispatcher()->dispatch('onBeforeRespond');
// Set the application as global app
\Joomla\CMS\Factory::$application = $app;
// Execute the application.
$app->execute();
* define() is used rather than "const" to not error for PHP 5.2 and lower
*/
define('_JEXEC', 1);
// Run the application - All executable code should be triggered through this file
require_once dirname(__FILE__) . '/includes/app.php';
throw new \RuntimeException('Failed to start the session: already started by PHP.');
}
if (ini_get('session.use_cookies') && headers_sent($file, $line))
{
throw new \RuntimeException(
sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line)
);
}
if (!session_start())
$this->setId($session_clean);
$cookie->set($session_name, '', time() - 3600);
}
}
parent::start();
// Try loading data from the session
if (isset($_SESSION['joomla']) && !empty($_SESSION['joomla'])) {
$this->data = unserialize(base64_decode($_SESSION['joomla']));
}
if ($this->isStarted())
{
return;
}
$this->store->start();
$this->setState(SessionState::ACTIVE);
// Initialise the session
$this->setCounter();
*/
public function has($name)
{
if (!$this->isActive())
{
$this->start();
}
return $this->store->has($name);
}
$name = $args[2] . '.' . $name;
}
}
if (parent::has($name)) {
// Parent is used because of b/c, can be changed in Joomla 5
return parent::get($name, $default);
}
/*
*/
public function getMessageQueue($clear = false)
{
// For empty queue, if messages exists in the session, enqueue them.
if (!\count($this->messageQueue)) {
$sessionQueue = $this->getSession()->get('application.queue', []);
if ($sessionQueue) {
$this->messageQueue = $sessionQueue;
$this->getSession()->set('application.queue', []);
}
'message' => $inputFilter->clean($msg, 'html'),
'type' => $inputFilter->clean(strtolower($type), 'cmd'),
];
// For empty queue, if messages exists in the session, enqueue them first.
$messages = $this->getMessageQueue();
if (!\in_array($message, $this->messageQueue)) {
// Enqueue the message.
$this->messageQueue[] = $message;
}
throw new \InvalidArgumentException(Text::sprintf('JERROR_COULD_NOT_FIND_TEMPLATE', $original_tmpl));
}
}
}
} elseif (!is_file(JPATH_THEMES . '/' . $template->template . '/index.php')) {
$this->enqueueMessage(Text::_('JERROR_ALERTNOTEMPLATE'), 'error');
// Try to find data for 'cassiopeia' template
$original_tmpl = $template->template;
foreach ($templates as $tmpl) {
'phpVersion' => PHP_VERSION,
'joomlaVersion' => JVERSION,
'requestId' => $this->requestId,
'identity' => $this->getIdentityInfo($application->getIdentity()),
'response' => $this->getResponseInfo($application->getResponse()),
'template' => $this->getTemplateInfo($application->getTemplate(true)),
'database' => $this->getDatabaseInfo($model->getInfo()),
];
}
/**
$request_variables
)
);
foreach ($this->collectors as $name => $collector) {
$this->data[$name] = $collector->collect();
}
// Remove all invalid (non UTF-8) characters
array_walk_recursive($this->data, function (&$item) {
if (is_string($item) && !mb_check_encoding($item, 'UTF-8')) {
* @return array
*/
public function getData()
{
if ($this->data === null) {
$this->collect();
}
return $this->data;
}
/**
{
$http = $this->initStackSession();
$data = null;
if (!$this->isDataPersisted() || $this->stackAlwaysUseSessionStorage) {
$data = $this->getData();
} elseif ($this->data === null) {
$this->collect();
}
$stack = $http->getSessionValue($this->stackSessionNamespace);
$this->debugBar->addCollector(new LanguageErrorsCollector($this->params));
}
// Only render for HTML output.
if (!($this->getApplication()->getDocument() instanceof HtmlDocument)) {
$this->debugBar->stackData();
return;
}
$debugBarRenderer = new JavascriptRenderer($this->debugBar, Uri::root(true) . '/media/vendor/debugbar/');
if ($event->isStopped())
{
return $event;
}
$listener($event);
}
}
return $event;
}
$dispatcher = $this->getDispatcher();
} catch (\UnexpectedValueException $exception) {
return null;
}
return $dispatcher->dispatch($eventName, $event ?: new ApplicationEvent($eventName, $this));
}
/**
* Method to run the application routines.
*
$this->dispatchEvent(ApplicationEvents::BEFORE_RESPOND);
// Set appropriate headers
$this->respond();
$this->dispatchEvent(ApplicationEvents::AFTER_RESPOND);
// Close the application after the redirect.
$this->close();
}
if (\count($this->messageQueue)) {
$this->getSession()->set('application.queue', $this->messageQueue);
}
// Hand over processing to the parent now
parent::redirect($url, $status);
}
/**
* Rendering is the process of pushing the document buffers into the template
* placeholders, retrieving data from the document and pushing it into
public function parseCheckSSL(&$router, &$uri)
{
if (strtolower($uri->getScheme()) !== 'https') {
// Forward to https
$uri->setScheme('https');
$this->app->redirect((string) $uri, 301);
}
}
/**
* Do some initial cleanup before parsing the URL
if (!\array_key_exists('parse' . $stage, $this->rules)) {
throw new \InvalidArgumentException(sprintf('The %s stage is not registered. (%s)', $stage, __METHOD__));
}
foreach ($this->rules['parse' . $stage] as $rule) {
$rule($this, $uri);
}
}
/**
* Process the build uri query data based on custom defined rules
* @throws \Exception
*/
public function parse(&$uri, $setVars = false)
{
// Do the preprocess stage of the URL parse process
$this->processParseRules($uri, self::PROCESS_BEFORE);
// Do the main stage of the URL parse process
$this->processParseRules($uri);
// Do the postprocess stage of the URL parse process
// Get the full request URI.
$uri = clone Uri::getInstance();
// It is not possible to inject the SiteRouter as it requires a SiteApplication
// and we would end in an infinite loop
$result = $this->getContainer()->get(SiteRouter::class)->parse($uri, true);
$active = $this->getMenu()->getActive();
if (
$active !== null
// Mark afterInitialise in the profiler.
JDEBUG ? $this->profiler->mark('afterInitialise') : null;
// Route the application
$this->route();
// Mark afterRoute in the profiler.
JDEBUG ? $this->profiler->mark('afterRoute') : null;
if (!$this->isHandlingMultiFactorAuthentication()) {
$this->sanityCheckSystemVariables();
$this->setupLogging();
$this->createExtensionNamespaceMap();
// Perform application routines.
$this->doExecute();
// If we have an application document object, render it.
if ($this->document instanceof \Joomla\CMS\Document\Document) {
// Render the application output.
$this->render();
// Set the application as global app
\Joomla\CMS\Factory::$application = $app;
// Execute the application.
$app->execute();
* define() is used rather than "const" to not error for PHP 5.2 and lower
*/
define('_JEXEC', 1);
// Run the application - All executable code should be triggered through this file
require_once dirname(__FILE__) . '/includes/app.php';
[2/2]
RuntimeException
|
---|
RuntimeException: Failed to start the session because headers have already been sent by "/homepages/23/d380474000/htdocs/circle2020/plugins/system/japopup/japopup.php" at line 50. at /homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/session/src/Storage/NativeStorage.php:473 at Joomla\Session\Storage\NativeStorage->start() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Session/Storage/JoomlaStorage.php:295) at Joomla\CMS\Session\Storage\JoomlaStorage->start() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/session/src/Session.php:406) at Joomla\Session\Session->start() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/session/src/Session.php:333) at Joomla\Session\Session->has() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Session/Session.php:194) at Joomla\CMS\Session\Session->get() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/CMSApplication.php:544) at Joomla\CMS\Application\CMSApplication->getMessageQueue() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/CMSApplication.php:240) at Joomla\CMS\Application\CMSApplication->enqueueMessage() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/SiteApplication.php:523) at Joomla\CMS\Application\SiteApplication->getTemplate() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Error/Renderer/HtmlRenderer.php:50) at Joomla\CMS\Error\Renderer\HtmlRenderer->render() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Exception/ExceptionHandler.php:126) at Joomla\CMS\Exception\ExceptionHandler::render() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Exception/ExceptionHandler.php:72) at Joomla\CMS\Exception\ExceptionHandler::handleException() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/CMSApplication.php:322) at Joomla\CMS\Application\CMSApplication->execute() (/homepages/23/d380474000/htdocs/circle2020/includes/app.php:61) at require_once('/homepages/23/d380474000/htdocs/circle2020/includes/app.php') (/homepages/23/d380474000/htdocs/circle2020/index.php:32) |
[1/2]
RuntimeException
|
---|
RuntimeException: Failed to start the session because headers have already been sent by "/homepages/23/d380474000/htdocs/circle2020/plugins/system/japopup/japopup.php" at line 50. at /homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/session/src/Storage/NativeStorage.php:473 at Joomla\Session\Storage\NativeStorage->start() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Session/Storage/JoomlaStorage.php:295) at Joomla\CMS\Session\Storage\JoomlaStorage->start() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/session/src/Session.php:406) at Joomla\Session\Session->start() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/session/src/Session.php:333) at Joomla\Session\Session->has() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Session/Session.php:194) at Joomla\CMS\Session\Session->get() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/CMSApplication.php:544) at Joomla\CMS\Application\CMSApplication->getMessageQueue() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/CMSApplication.php:240) at Joomla\CMS\Application\CMSApplication->enqueueMessage() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/SiteApplication.php:523) at Joomla\CMS\Application\SiteApplication->getTemplate() (/homepages/23/d380474000/htdocs/circle2020/plugins/system/debug/src/DataCollector/InfoCollector.php:135) at Joomla\Plugin\System\Debug\DataCollector\InfoCollector->collect() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php:238) at DebugBar\DebugBar->collect() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php:265) at DebugBar\DebugBar->getData() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php:340) at DebugBar\DebugBar->stackData() (/homepages/23/d380474000/htdocs/circle2020/plugins/system/debug/src/Extension/Debug.php:331) at Joomla\Plugin\System\Debug\Extension\Debug->onAfterRespond() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/event/src/Dispatcher.php:486) at Joomla\Event\Dispatcher->dispatch() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/application/src/AbstractApplication.php:99) at Joomla\Application\AbstractApplication->dispatchEvent() (/homepages/23/d380474000/htdocs/circle2020/libraries/vendor/joomla/application/src/AbstractWebApplication.php:510) at Joomla\Application\AbstractWebApplication->redirect() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/CMSApplication.php:983) at Joomla\CMS\Application\CMSApplication->redirect() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Router/SiteRouter.php:114) at Joomla\CMS\Router\SiteRouter->parseCheckSSL() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Router/Router.php:384) at Joomla\CMS\Router\Router->processParseRules() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Router/Router.php:144) at Joomla\CMS\Router\Router->parse() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/SiteApplication.php:746) at Joomla\CMS\Application\SiteApplication->route() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/SiteApplication.php:232) at Joomla\CMS\Application\SiteApplication->doExecute() (/homepages/23/d380474000/htdocs/circle2020/libraries/src/Application/CMSApplication.php:293) at Joomla\CMS\Application\CMSApplication->execute() (/homepages/23/d380474000/htdocs/circle2020/includes/app.php:61) at require_once('/homepages/23/d380474000/htdocs/circle2020/includes/app.php') (/homepages/23/d380474000/htdocs/circle2020/index.php:32) |