Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/cogwheel/cogwheel.dev/system/src/Grav/Common/Utils.php on line 1148

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/cogwheel/cogwheel.dev/system/src/Grav/Common/Utils.php on line 1148

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/cogwheel/cogwheel.dev/system/src/Grav/Common/Utils.php on line 1150
Crikey! There was an error...
Grav \ Framework \ Session \ Exceptions \ SessionException (500)
Failed to start session: session_start(): Session cannot be started after headers have already been sent Grav\Framework\Session\Exceptions\SessionException thrown with message "Failed to start session: session_start(): Session cannot be started after headers have already been sent" Stacktrace: #10 Grav\Framework\Session\Exceptions\SessionException in /home/cogwheel/cogwheel.dev/system/src/Grav/Framework/Session/Session.php:251 #9 Grav\Framework\Session\Session:start in /home/cogwheel/cogwheel.dev/system/src/Grav/Common/Session.php:48 #8 Grav\Common\Session:init in /home/cogwheel/cogwheel.dev/system/src/Grav/Common/Processors/InitializeProcessor.php:452 #7 Grav\Common\Processors\InitializeProcessor:initializeSession in /home/cogwheel/cogwheel.dev/system/src/Grav/Common/Processors/InitializeProcessor.php:109 #6 Grav\Common\Processors\InitializeProcessor:process in /home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #5 Grav\Framework\RequestHandler\RequestHandler:handle in /home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #4 Grav\Framework\RequestHandler\RequestHandler:handle in /home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php:40 #3 Grav\Framework\RequestHandler\Middlewares\MultipartRequestSupport:process in /home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #2 Grav\Framework\RequestHandler\RequestHandler:handle in /home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #1 Grav\Framework\RequestHandler\RequestHandler:handle in /home/cogwheel/cogwheel.dev/system/src/Grav/Common/Grav.php:312 #0 Grav\Common\Grav:process in /home/cogwheel/cogwheel.dev/index.php:47
Stack frames (11)
10
Grav\Framework\Session\Exceptions\SessionException
/system/src/Grav/Framework/Session/Session.php251
9
Grav\Framework\Session\Session start
/system/src/Grav/Common/Session.php48
8
Grav\Common\Session init
/system/src/Grav/Common/Processors/InitializeProcessor.php452
7
Grav\Common\Processors\InitializeProcessor initializeSession
/system/src/Grav/Common/Processors/InitializeProcessor.php109
6
Grav\Common\Processors\InitializeProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
5
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
4
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php40
3
Grav\Framework\RequestHandler\Middlewares\MultipartRequestSupport process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
2
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
1
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Grav.php312
0
Grav\Common\Grav process
/index.php47
/home/cogwheel/cogwheel.dev/system/src/Grav/Framework/Session/Session.php
                // Start session with new session id.
                $useStrictMode = $options['use_strict_mode'] ?? 0;
                if ($useStrictMode) {
                    ini_set('session.use_strict_mode', '0');
                }
                session_id($newId);
                if ($useStrictMode) {
                    ini_set('session.use_strict_mode', '1');
                }
 
                $success = @session_start($options);
                if (!$success) {
                    $last = error_get_last();
                    $error = $last ? $last['message'] : 'Unknown error';
 
                    throw new RuntimeException($error);
                }
            }
        } catch (Exception $e) {
            throw new SessionException('Failed to start session: ' . $e->getMessage(), 500);
        }
 
        $this->started = true;
        $this->onSessionStart();
 
        $user = $this->__get('user');
        if ($user && (!$user instanceof UserInterface || (method_exists($user, 'isValid') && !$user->isValid()))) {
            $this->invalidate();
 
            throw new SessionException('Invalid User object, session destroyed.', 500);
        }
 
        // Extend the lifetime of the session.
        if ($sessionExists) {
            $this->setCookie();
        }
 
        return $this;
    }
 
Arguments
  1. "Failed to start session: session_start(): Session cannot be started after headers have already been sent"
    
/home/cogwheel/cogwheel.dev/system/src/Grav/Common/Session.php
     * @deprecated 1.5 Use ->getInstance() method instead.
     */
    public static function instance()
    {
        user_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated since Grav 1.5, use ->getInstance() method instead', E_USER_DEPRECATED);
 
        return static::getInstance();
    }
 
    /**
     * Initialize session.
     *
     * Code in this function has been moved into SessionServiceProvider class.
     *
     * @return void
     */
    public function init()
    {
        if ($this->autoStart && !$this->isStarted()) {
            $this->start();
 
            $this->autoStart = false;
        }
    }
 
    /**
     * @param bool $auto
     * @return $this
     */
    public function setAutoStart($auto)
    {
        $this->autoStart = (bool)$auto;
 
        return $this;
    }
 
    /**
     * Returns attributes.
     *
     * @return array Attributes
/home/cogwheel/cogwheel.dev/system/src/Grav/Common/Processors/InitializeProcessor.php
 
        return null;
    }
 
    /**
     * @param Config $config
     */
    protected function initializeSession(Config $config): void
    {
        // FIXME: Initialize session should happen later after plugins have been loaded. This is a workaround to fix session issues in AWS.
        if (isset($this->container['session']) && $config->get('system.session.initialize', true)) {
            $this->startTimer('_init_session', 'Start Session');
 
            /** @var Session $session */
            $session = $this->container['session'];
 
            try {
                $session->init();
            } catch (SessionException $e) {
                $session->init();
                $message = 'Session corruption detected, restarting session...';
                $this->addMessage($message);
                $this->container['messages']->add($message, 'error');
            }
 
            $this->stopTimer('_init_session');
        }
    }
}
 
/home/cogwheel/cogwheel.dev/system/src/Grav/Common/Processors/InitializeProcessor.php
        }
 
        // Initialize output buffering.
        $this->initializeOutputBuffering($config);
 
        // Set timezone, locale.
        $this->initializeLocale($config);
 
        // Load plugins.
        $this->initializePlugins();
 
        // Load pages.
        $this->initializePages($config);
 
        // Load accounts (decides class to be used).
        // TODO: remove in 2.0.
        $this->container['accounts'];
 
        // Initialize session (used by URI, see issue #3269).
        $this->initializeSession($config);
 
        // Initialize URI (uses session, see issue #3269).
        $this->initializeUri($config);
 
        // Grav may return redirect response right away.
        $redirectCode = (int)$config->get('system.pages.redirect_trailing_slash', 1);
        if ($redirectCode) {
            $response = $this->handleRedirectRequest($request, $redirectCode > 300 ? $redirectCode : null);
            if ($response) {
                $this->stopTimer('_init');
 
                return $response;
            }
        }
 
        $this->stopTimer('_init');
 
        // Wrap call to next handler so that debugger can profile it.
        /** @var Response $response */
        $response = $debugger->profile(static function () use ($handler, $request) {
Arguments
  1. Grav\Common\Config\Config {#94}
    
/home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#62}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#87}
    
/home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#62}
    
/home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php
use function in_array;
use function is_array;
use function strlen;
 
/**
 * Multipart request support for PUT and PATCH.
 */
class MultipartRequestSupport implements MiddlewareInterface
{
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $contentType = $request->getHeaderLine('content-type');
        $method = $request->getMethod();
        if (!str_starts_with($contentType, 'multipart/form-data') || !in_array($method, ['PUT', 'PATH'], true)) {
            return $handler->handle($request);
        }
 
        $boundary = explode('; boundary=', $contentType, 2)[1] ?? '';
        $parts = explode("--{$boundary}", $request->getBody()->getContents());
        $parts = array_slice($parts, 1, count($parts) - 2);
 
        $params = [];
        $files = [];
        foreach ($parts as $part) {
            $this->processPart($params, $files, $part);
        }
 
        return $handler->handle($request->withParsedBody($params)->withUploadedFiles($files));
    }
 
    /**
     * @param array $params
     * @param array $files
     * @param string $part
     * @return void
Arguments
  1. Nyholm\Psr7\ServerRequest {#62}
    
/home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#62}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#85}
    
/home/cogwheel/cogwheel.dev/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#62}
    
/home/cogwheel/cogwheel.dev/system/src/Grav/Common/Grav.php
                },
                'pagesProcessor' => function () {
                    return new PagesProcessor($this);
                },
                'debuggerAssetsProcessor' => function () {
                    return new DebuggerAssetsProcessor($this);
                },
                'renderProcessor' => function () {
                    return new RenderProcessor($this);
                },
            ]
        );
 
        $default = static function () {
            return new Response(404, ['Expires' => 0, 'Cache-Control' => 'no-store, max-age=0'], 'Not Found');
        };
 
        $collection = new RequestHandler($this->middleware, $default, $container);
 
        $response = $collection->handle($this['request']);
        $body = $response->getBody();
 
        /** @var Messages $messages */
        $messages = $this['messages'];
 
        // Prevent caching if session messages were displayed in the page.
        $noCache = $messages->isCleared();
        if ($noCache) {
            $response = $response->withHeader('Cache-Control', 'no-store, max-age=0');
        }
 
        // Handle ETag and If-None-Match headers.
        if ($response->getHeaderLine('ETag') === '1') {
            $etag = md5($body);
            $response = $response->withHeader('ETag', '"' . $etag . '"');
 
            $search = trim($this['request']->getHeaderLine('If-None-Match'), '"');
            if ($noCache === false && $search === $etag) {
                $response = $response->withStatus(304);
                $body = '';
Arguments
  1. Nyholm\Psr7\ServerRequest {#62}
    
/home/cogwheel/cogwheel.dev/index.php
 
// Register the auto-loader.
$loader = require $autoload;
 
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get());
 
// Set internal encoding.
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
 
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
 
// Get the Grav instance
$grav = Grav::instance(array('loader' => $loader));
 
// Process the page
try {
    $grav->process();
} catch (\Error|\Exception $e) {
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
}
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
PATH
"/usr/local/bin:/bin:/usr/bin"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_ENCODING
"br,gzip"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_CONNECTION
"Keep-Alive"
HTTP_HOST
"cogwheel.dev"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_IF_MODIFIED_SINCE
"Mon, 24 Jun 2024 04:09:26 GMT"
DOCUMENT_ROOT
"/home/cogwheel/cogwheel.dev"
REMOTE_ADDR
"44.192.94.177"
REMOTE_PORT
"34566"
SERVER_ADDR
"104.225.208.27"
SERVER_NAME
"cogwheel.dev"
SERVER_ADMIN
"webmaster@cogwheel-dev.cogwheel.info"
SERVER_PORT
"80"
REQUEST_SCHEME
"http"
REQUEST_URI
"/"
SCRIPT_FILENAME
"/home/cogwheel/cogwheel.dev/index.php"
QUERY_STRING
""
SCRIPT_URI
"http://cogwheel.dev/"
SCRIPT_URL
"/"
SCRIPT_NAME
"/index.php"
SERVER_PROTOCOL
"HTTP/1.1"
SERVER_SOFTWARE
"LiteSpeed"
REQUEST_METHOD
"GET"
X-LSCACHE
"on"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1720955760.05
REQUEST_TIME
1720955760
argv
[]
argc
0
empty
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler