if ($this->isActive()) { 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, '', ['expires' => time() - 3600 ]); } } parent::start(); // Try loading data from the session if (!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(); * @since 1.0 */ 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 6 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'), ]; // Get the messages of the session and add the new message if it is not already in the queue. if (!\in_array($message, $this->getMessageQueue())) { // 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 'subject' => $app, 'document' => $renderer->getDocument(), ]) ); $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->dispatchEvent('onError', $event); ExceptionHandler::handleException($event->getError()); } // Trigger the onBeforeRespond event. $this->dispatchEvent( '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'; if ($this->isActive()) { 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, '', ['expires' => time() - 3600 ]); } } parent::start(); // Try loading data from the session if (!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(); * @since 1.0 */ 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 6 return parent::get($name, $default); } /* __CLASS__ ), E_USER_DEPRECATED ); $instance = self::getApplication()->getSession()->get('user'); if (\is_null($id)) { if (!($instance instanceof User)) { $instance = User::getInstance(); } * * @since 3.2 */ protected function initialiseApp($options = []) { $user = Factory::getUser(); // If the user is a guest we populate it with the guest user group. if ($user->guest) { $guestUsergroup = ComponentHelper::getParams('com_users')->get('guest_usergroup', 1); $user->groups = [$guestUsergroup]; * @since 3.2 */ protected function doExecute() { // Initialise the application $this->initialiseApp(); // Mark afterInitialise in the profiler. JDEBUG ? $this->profiler->mark('afterInitialise') : null; // Route the application $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 "/mnt/web620/b0/44/5921644/htdocs/index.php" at line 17.
at /mnt/web620/b0/44/5921644/htdocs/libraries/vendor/joomla/session/src/Storage/NativeStorage.php:454
at Joomla\Session\Storage\NativeStorage->start()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Session/Storage/JoomlaStorage.php:313)
at Joomla\CMS\Session\Storage\JoomlaStorage->start()
(/mnt/web620/b0/44/5921644/htdocs/libraries/vendor/joomla/session/src/Session.php:396)
at Joomla\Session\Session->start()
(/mnt/web620/b0/44/5921644/htdocs/libraries/vendor/joomla/session/src/Session.php:327)
at Joomla\Session\Session->has()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Session/Session.php:194)
at Joomla\CMS\Session\Session->get()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Application/CMSApplication.php:611)
at Joomla\CMS\Application\CMSApplication->getMessageQueue()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Application/CMSApplication.php:253)
at Joomla\CMS\Application\CMSApplication->enqueueMessage()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Application/SiteApplication.php:526)
at Joomla\CMS\Application\SiteApplication->getTemplate()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Error/Renderer/HtmlRenderer.php:50)
at Joomla\CMS\Error\Renderer\HtmlRenderer->render()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Exception/ExceptionHandler.php:139)
at Joomla\CMS\Exception\ExceptionHandler::render()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Exception/ExceptionHandler.php:73)
at Joomla\CMS\Exception\ExceptionHandler::handleException()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Application/CMSApplication.php:334)
at Joomla\CMS\Application\CMSApplication->execute()
(/mnt/web620/b0/44/5921644/htdocs/includes/app.php:58)
at require_once('/mnt/web620/b0/44/5921644/htdocs/includes/app.php')
(/mnt/web620/b0/44/5921644/htdocs/index.php:48)
|
|
[1/2]
RuntimeException
|
|---|
RuntimeException:
Failed to start the session because headers have already been sent by "/mnt/web620/b0/44/5921644/htdocs/index.php" at line 17.
at /mnt/web620/b0/44/5921644/htdocs/libraries/vendor/joomla/session/src/Storage/NativeStorage.php:454
at Joomla\Session\Storage\NativeStorage->start()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Session/Storage/JoomlaStorage.php:313)
at Joomla\CMS\Session\Storage\JoomlaStorage->start()
(/mnt/web620/b0/44/5921644/htdocs/libraries/vendor/joomla/session/src/Session.php:396)
at Joomla\Session\Session->start()
(/mnt/web620/b0/44/5921644/htdocs/libraries/vendor/joomla/session/src/Session.php:327)
at Joomla\Session\Session->has()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Session/Session.php:194)
at Joomla\CMS\Session\Session->get()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Factory.php:372)
at Joomla\CMS\Factory::getUser()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Application/SiteApplication.php:565)
at Joomla\CMS\Application\SiteApplication->initialiseApp()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Application/SiteApplication.php:237)
at Joomla\CMS\Application\SiteApplication->doExecute()
(/mnt/web620/b0/44/5921644/htdocs/libraries/src/Application/CMSApplication.php:304)
at Joomla\CMS\Application\CMSApplication->execute()
(/mnt/web620/b0/44/5921644/htdocs/includes/app.php:58)
at require_once('/mnt/web620/b0/44/5921644/htdocs/includes/app.php')
(/mnt/web620/b0/44/5921644/htdocs/index.php:48)
|