* @throws \InvalidArgumentException On invalid $savePath
*/
public function __construct($savePath = null)
{
if (null === $savePath) {
$savePath = ini_get('session.save_path');
}
$baseDir = $savePath;
if ($count = substr_count($savePath, ';')) {
if ($count > 2) {
throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'', $savePath));
}
// characters after last ';' are the path
$baseDir = ltrim(strrchr($savePath, ';'), ';');
}
ini_set('session.save_handler', 'files');
try {
if ($baseDir && !is_dir($baseDir)) {
mkdir($baseDir, 0777, true);
}
ini_set('session.save_path', $savePath);
} catch (\Exception $e) {
/*
* Catch any exceptions caused by open_basedir restrictions and ignore them.
*
* Not the most elegant solution but far less tedious than trying to analyze the save path.
*
* - if the exception is not open_basedir related, pass it on.
* - if a save path was manually specified, pass it on.
*/
if (strpos($e->getMessage(), 'open_basedir') === false || current(func_get_args())) {
throw $e;
}
* @throws \InvalidArgumentException On invalid $savePath
*/
public function __construct($savePath = null)
{
if (null === $savePath) {
$savePath = ini_get('session.save_path');
}
$baseDir = $savePath;
if ($count = substr_count($savePath, ';')) {
if ($count > 2) {
throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'', $savePath));
}
// characters after last ';' are the path
$baseDir = ltrim(strrchr($savePath, ';'), ';');
}
ini_set('session.save_handler', 'files');
try {
if ($baseDir && !is_dir($baseDir)) {
mkdir($baseDir, 0777, true);
}
ini_set('session.save_path', $savePath);
} catch (\Exception $e) {
/*
* Catch any exceptions caused by open_basedir restrictions and ignore them.
*
* Not the most elegant solution but far less tedious than trying to analyze the save path.
*
* - if the exception is not open_basedir related, pass it on.
* - if a save path was manually specified, pass it on.
*/
if (strpos($e->getMessage(), 'open_basedir') === false || current(func_get_args())) {
throw $e;
}
return new $concrete;
}
$dependencies = $constructor->getParameters();
// Once we have all the constructor's parameters we can create each of the
// dependency instances and then use the reflection instances to make a
// new instance of this class, injecting the created dependencies in.
$parameters = $this->keyParametersByArgument(
$dependencies, $parameters
);
$instances = $this->getDependencies(
$dependencies, $parameters
);
array_pop($this->buildStack);
return $reflector->newInstanceArgs($instances);
}
/**
* Resolve all of the dependencies from the ReflectionParameters.
*
* @param array $parameters
* @param array $primitives
* @return array
*/
protected function getDependencies(array $parameters, array $primitives = [])
{
$dependencies = [];
foreach ($parameters as $parameter) {
$dependency = $parameter->getClass();
// If the class is null, it means the dependency is a string or some other
// primitive type which we can not resolve since it is not a class and
// we will just bomb out with an error since we have no-where to go.
if (array_key_exists($parameter->name, $primitives)) {
$args = $this->isRunThroughCommandLineInterface() && isset($_SERVER['argv']) ? $_SERVER['argv'] : null;
$detector = new EnvironmentDetector();
return $this->environment = $detector->detect($environments, $args);
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*
* @return mixed
*/
public function build($concrete, array $parameters = [])
{
$object = parent::build($concrete, $parameters);
if (is_object($object)) {
if ($object instanceof ApplicationAwareInterface) {
$object->setApplication($this);
}
if ($object instanceof LoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger($object->getLoggerChannel());
$object->setLogger($logger);
} elseif ($object instanceof PsrLoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger(Channels::CHANNEL_APPLICATION);
$object->setLogger($logger);
}
}
return $object;
}
/**
* @return RuntimeInterface
*/
* @return mixed
*/
public function make($abstract, array $parameters = [])
{
$abstract = $this->getAlias($this->normalize($abstract));
// If an instance of the type is currently being managed as a singleton we'll
// just return an existing instance instead of instantiating new instances
// so the developer can keep using the same objects instance every time.
if (isset($this->instances[$abstract])) {
return $this->instances[$abstract];
}
$concrete = $this->getConcrete($abstract);
// We're ready to instantiate an instance of the concrete type registered for
// the binding. This will instantiate the types, as well as resolve any of
// its "nested" dependencies recursively until all have gotten resolved.
if ($this->isBuildable($concrete, $abstract)) {
$object = $this->build($concrete, $parameters);
} else {
$object = $this->make($concrete, $parameters);
}
// If we defined any extenders for this type, we'll need to spin through them
// and apply them to the object being built. This allows for the extension
// of services, such as changing configuration or decorating the object.
foreach ($this->getExtenders($abstract) as $extender) {
$object = $extender($object, $this);
}
// If the requested type is registered as a singleton we'll want to cache off
// the instances in "memory" so we can return it later without creating an
// entirely new instance of an object on each subsequent request for it.
if ($this->isShared($abstract)) {
$this->instances[$abstract] = $object;
}
$this->fireResolvingCallbacks($abstract, $object);
$session->setName(array_get($config, 'name'));
/* @TODO Remove this call. We should be able to set this against the request somewhere much higher than this */
/* At the very least we should have an observer that can track the session status and set this */
$this->app->make(\Concrete\Core\Http\Request::class)->setSession($session);
return $session;
}
/**
* Create and return a newly built file session handler.
*
* @param array $config The `concrete.session` config item
*
* @return \Concrete\Core\Session\Storage\Handler\NativeFileSessionHandler
*/
protected function getFileHandler(array $config)
{
return $this->app->make(NativeFileSessionHandler::class, [
array_get($config, 'save_path'),
]);
}
/**
* Create a new database session handler to handle session.
*
* @param array $config The `concrete.session` config item
*
* @return \Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
*/
protected function getDatabaseHandler(array $config)
{
return $this->app->make(PdoSessionHandler::class, [
$this->app->make(Connection::class)->getWrappedConnection(),
[
'db_table' => 'Sessions',
'db_id_col' => 'sessionID',
'db_data_col' => 'sessionValue',
'db_time_col' => 'sessionTime',
'db_lifetime_col' => 'sessionLifeTime',
return $app->make(Storage\LoggedStorage::class, [$storage]);
}
/**
* Get a new session handler.
*
* @param array $config The config from our config repository
*
* @return \SessionHandlerInterface
*
* @throws \RuntimeException When a configured handler does not exist
*/
private function getSessionHandler(array $config)
{
$handler = array_get($config, 'handler', 'default');
// Build handler using a matching method "get{Type}Handler"
$method = Str::camel("get_{$handler}_handler");
if (method_exists($this, $method)) {
return $this->{$method}($config);
}
/*
* @todo Change this to return an exception if an unsupported handler is configured. This makes it easier to get
* configuration dialed in properly
*/
//throw new \RuntimeException(t('Unsupported session handler "%s"', $handler));
// Return the default session handler by default
return $this->getSessionHandler(['handler' => 'default'] + $config);
}
/**
* Generator for only returning hosts that aren't already added to the memcache instance.
*
* @param \Memcached $memcached
* @param array $servers The servers as described in config
*
* @return \Generator|string[] [ $host, $port, $weight ]
*/
}
/**
* Get a session storage object based on configuration.
*
* @param array $config
*
* @return \Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface
*/
private function getSessionStorage(array $config)
{
$app = $this->app;
// If we're running through command line, just early return an in-memory storage
if ($app->isRunThroughCommandLineInterface()) {
return $app->make(MockArraySessionStorage::class);
}
// Resolve the handler based on config
$handler = $this->getSessionHandler($config);
$storage = $app->make(NativeSessionStorage::class, [[], $handler]);
// Initialize the storage with some options
$options = array_get($config, 'cookie', []) + [
'gc_maxlifetime' => (int) array_get($config, 'max_lifetime') ?: (int) ini_get('session.gc_maxlifetime') ?: 7200,
'gc_probability' => (int) array_get($config, 'gc_probability') ?: (int) ini_get('session.gc_probability') ?: 1,
'gc_divisor' => (int) array_get($config, 'gc_divisor') ?: (int) ini_get('session.gc_divisor') ?: 100,
];
if (array_get($options, 'cookie_path', false) === false) {
$options['cookie_path'] = $app['app_relative_path'] . '/';
}
$storage->setOptions($options);
return $app->make(Storage\LoggedStorage::class, [$storage]);
}
/**
* Get a new session handler.
* @param \Concrete\Core\Http\Request $request @deprecated, will be removed
*/
public function __construct(Application $app, Request $request)
{
$this->app = $app;
$this->request = $request;
}
/**
* Create a new symfony session object
* This method MUST NOT start the session.
*
* @return \Symfony\Component\HttpFoundation\Session\Session
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function createSession()
{
$config = $this->app['config']['concrete.session'];
$storage = $this->getSessionStorage($config);
// We have to use "build" here because we have bound this classname to this factory method
$session = $this->app->build(SymfonySession::class, [$storage]);
$session->setName(array_get($config, 'name'));
/* @TODO Remove this call. We should be able to set this against the request somewhere much higher than this */
/* At the very least we should have an observer that can track the session status and set this */
$this->app->make(\Concrete\Core\Http\Request::class)->setSession($session);
return $session;
}
/**
* Create and return a newly built file session handler.
*
* @param array $config The `concrete.session` config item
*
* @return \Concrete\Core\Session\Storage\Handler\NativeFileSessionHandler
*/
protected function getFileHandler(array $config)
use Concrete\Core\Application\Application;
use Concrete\Core\Foundation\Service\Provider as ServiceProvider;
use Concrete\Core\Logging\Channels;
use Concrete\Core\Logging\LoggerFactory;
use Psr\Log\LoggerInterface;
class SessionServiceProvider extends ServiceProvider
{
public function register()
{
// Supply the deprecated static session accessor with a real application object
Session::setApplicationObject($this->app);
$this->app->bind('Concrete\Core\Session\SessionValidatorInterface', SessionValidator::class);
$this->app->singleton(SessionValidator::class);
$this->app->bind('Concrete\Core\Session\SessionFactoryInterface', 'Concrete\Core\Session\SessionFactory');
$this->app->singleton('session', function ($app) {
return $app->make('Concrete\Core\Session\SessionFactoryInterface')->createSession();
});
$this->app->bind('Symfony\Component\HttpFoundation\Session\Session', 'session');
}
}
return [];
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
* @return mixed
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function build($concrete, array $parameters = [])
{
// If the concrete type is actually a Closure, we will just execute it and
// hand back the results of the functions, which allows functions to be
// used as resolvers for more fine-tuned resolution of these objects.
if ($concrete instanceof Closure) {
return $concrete($this, $parameters);
}
$reflector = new ReflectionClass($concrete);
// If the type is not instantiable, the developer is attempting to resolve
// an abstract type such as an Interface of Abstract Class and there is
// no binding registered for the abstractions so we need to bail out.
if (! $reflector->isInstantiable()) {
if (! empty($this->buildStack)) {
$previous = implode(', ', $this->buildStack);
$message = "Target [$concrete] is not instantiable while building [$previous].";
} else {
$message = "Target [$concrete] is not instantiable.";
}
throw new BindingResolutionException($message);
}
$this->buildStack[] = $concrete;
$args = $this->isRunThroughCommandLineInterface() && isset($_SERVER['argv']) ? $_SERVER['argv'] : null;
$detector = new EnvironmentDetector();
return $this->environment = $detector->detect($environments, $args);
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*
* @return mixed
*/
public function build($concrete, array $parameters = [])
{
$object = parent::build($concrete, $parameters);
if (is_object($object)) {
if ($object instanceof ApplicationAwareInterface) {
$object->setApplication($this);
}
if ($object instanceof LoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger($object->getLoggerChannel());
$object->setLogger($logger);
} elseif ($object instanceof PsrLoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger(Channels::CHANNEL_APPLICATION);
$object->setLogger($logger);
}
}
return $object;
}
/**
* @return RuntimeInterface
*/
* @return mixed
*/
public function make($abstract, array $parameters = [])
{
$abstract = $this->getAlias($this->normalize($abstract));
// If an instance of the type is currently being managed as a singleton we'll
// just return an existing instance instead of instantiating new instances
// so the developer can keep using the same objects instance every time.
if (isset($this->instances[$abstract])) {
return $this->instances[$abstract];
}
$concrete = $this->getConcrete($abstract);
// We're ready to instantiate an instance of the concrete type registered for
// the binding. This will instantiate the types, as well as resolve any of
// its "nested" dependencies recursively until all have gotten resolved.
if ($this->isBuildable($concrete, $abstract)) {
$object = $this->build($concrete, $parameters);
} else {
$object = $this->make($concrete, $parameters);
}
// If we defined any extenders for this type, we'll need to spin through them
// and apply them to the object being built. This allows for the extension
// of services, such as changing configuration or decorating the object.
foreach ($this->getExtenders($abstract) as $extender) {
$object = $extender($object, $this);
}
// If the requested type is registered as a singleton we'll want to cache off
// the instances in "memory" so we can return it later without creating an
// entirely new instance of an object on each subsequent request for it.
if ($this->isShared($abstract)) {
$this->instances[$abstract] = $object;
}
$this->fireResolvingCallbacks($abstract, $object);
/**
* Determine if a given offset exists.
*
* @param string $key
* @return bool
*/
public function offsetExists($key)
{
return $this->bound($key);
}
/**
* Get the value at a given offset.
*
* @param string $key
* @return mixed
*/
public function offsetGet($key)
{
return $this->make($key);
}
/**
* Set the value at a given offset.
*
* @param string $key
* @param mixed $value
* @return void
*/
public function offsetSet($key, $value)
{
// If the value is not a Closure, we will make it one. This simply gives
// more "drop-in" replacement functionality for the Pimple which this
// container's simplest functions are base modeled and built after.
if (! $value instanceof Closure) {
$value = function () use ($value) {
return $value;
};
}
}
}
return false;
}
/**
* @return UserInfo|null
*/
public function getUserInfoObject()
{
return UserInfo::getByID($this->uID);
}
public function __construct()
{
$app = Application::getFacadeApplication();
$args = func_get_args();
$config = $app['config'];
$session = $app['session'];
$validator = $app->make(SessionValidator::class);
// We need to check for the cookie so that we don't auto create a session when this runs super early.
if (isset($args[1])) {
// first, we check to see if the username and password match the admin username and password
// $username = uName normally, but if not it's email address
$username = $args[0];
$password = $args[1];
$disableLogin = isset($args[2]) ? (bool) $args[2] : false;
if (!$disableLogin) {
$session->migrate();
$session->remove('uGroups');
$session->remove('accessEntities');
}
$v = [$username];
if ($config->get('concrete.user.registration.email_registration')) {
$q = 'select uID, uName, uIsActive, uIsValidated, uTimezone, uDefaultLanguage, uPassword, uLastPasswordChange, uIsPasswordReset from Users where uEmail = ?';
} else {
$q = 'select uID, uName, uIsActive, uIsValidated, uTimezone, uDefaultLanguage, uPassword, uLastPasswordChange, uIsPasswordReset from Users where uName = ?';
}
return new $concrete;
}
$dependencies = $constructor->getParameters();
// Once we have all the constructor's parameters we can create each of the
// dependency instances and then use the reflection instances to make a
// new instance of this class, injecting the created dependencies in.
$parameters = $this->keyParametersByArgument(
$dependencies, $parameters
);
$instances = $this->getDependencies(
$dependencies, $parameters
);
array_pop($this->buildStack);
return $reflector->newInstanceArgs($instances);
}
/**
* Resolve all of the dependencies from the ReflectionParameters.
*
* @param array $parameters
* @param array $primitives
* @return array
*/
protected function getDependencies(array $parameters, array $primitives = [])
{
$dependencies = [];
foreach ($parameters as $parameter) {
$dependency = $parameter->getClass();
// If the class is null, it means the dependency is a string or some other
// primitive type which we can not resolve since it is not a class and
// we will just bomb out with an error since we have no-where to go.
if (array_key_exists($parameter->name, $primitives)) {
$args = $this->isRunThroughCommandLineInterface() && isset($_SERVER['argv']) ? $_SERVER['argv'] : null;
$detector = new EnvironmentDetector();
return $this->environment = $detector->detect($environments, $args);
}
/**
* Instantiate a concrete instance of the given type.
*
* @param string $concrete
* @param array $parameters
*
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*
* @return mixed
*/
public function build($concrete, array $parameters = [])
{
$object = parent::build($concrete, $parameters);
if (is_object($object)) {
if ($object instanceof ApplicationAwareInterface) {
$object->setApplication($this);
}
if ($object instanceof LoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger($object->getLoggerChannel());
$object->setLogger($logger);
} elseif ($object instanceof PsrLoggerAwareInterface) {
$logger = $this->make('log/factory')->createLogger(Channels::CHANNEL_APPLICATION);
$object->setLogger($logger);
}
}
return $object;
}
/**
* @return RuntimeInterface
*/
* @return mixed
*/
public function make($abstract, array $parameters = [])
{
$abstract = $this->getAlias($this->normalize($abstract));
// If an instance of the type is currently being managed as a singleton we'll
// just return an existing instance instead of instantiating new instances
// so the developer can keep using the same objects instance every time.
if (isset($this->instances[$abstract])) {
return $this->instances[$abstract];
}
$concrete = $this->getConcrete($abstract);
// We're ready to instantiate an instance of the concrete type registered for
// the binding. This will instantiate the types, as well as resolve any of
// its "nested" dependencies recursively until all have gotten resolved.
if ($this->isBuildable($concrete, $abstract)) {
$object = $this->build($concrete, $parameters);
} else {
$object = $this->make($concrete, $parameters);
}
// If we defined any extenders for this type, we'll need to spin through them
// and apply them to the object being built. This allows for the extension
// of services, such as changing configuration or decorating the object.
foreach ($this->getExtenders($abstract) as $extender) {
$object = $extender($object, $this);
}
// If the requested type is registered as a singleton we'll want to cache off
// the instances in "memory" so we can return it later without creating an
// entirely new instance of an object on each subsequent request for it.
if ($this->isShared($abstract)) {
$this->instances[$abstract] = $object;
}
$this->fireResolvingCallbacks($abstract, $object);
}
}
/**
* @deprecated Splitted into initializeSystemTimezone and initializeSiteTimezone
*/
protected function initializeTimezone()
{
$this->initializeSystemTimezone();
$this->initializeSiteTimezone();
}
/**
* Initialize localization.
*
* @deprecated In a future major version this will be part of HTTP middleware
*/
protected function setSystemLocale()
{
$u = $this->app->make(User::class);
$lan = $u->getUserLanguageToDisplay();
$loc = Localization::getInstance();
$loc->setContextLocale(Localization::CONTEXT_UI, $lan);
}
/**
* Set legacy config values
* This sets `concrete.site` to the current site's sitename.
*
* @deprecated In a future major version this will be part of HTTP middleware
*
* @return Response|void Returns a response if an error occurs
*/
protected function registerLegacyConfigValues()
{
$config = $this->getConfig();
$name = $this->getSiteService()->getSite()->getSiteName();
$config->set('concrete.site', $name);
}
* @return Response|void Returns a response if an error occurs
*/
protected function handlePermissionKeys()
{
/* @todo Replace this with a testable service */
Key::loadAll();
}
/**
* Try a list of steps. If a response is returned, halt progression and return the response;.
*
* @param string[] $steps
*
* @return Response|null
*/
protected function trySteps(array $steps)
{
foreach ($steps as $step) {
// Run each step and return if there's a result
if ($result = $this->$step()) {
return $result;
}
}
return null;
}
/**
* Get the config repository to use.
*
* @deprecated In a future major version this will be part of HTTP middleware
*
* @return Repository
*/
protected function getConfig()
{
if (!$this->config) {
$this->config = $this->getDefaultConfig();
}
/**
* Begin the runtime.
*/
public function run()
{
// Load in the /application/bootstrap/app.php file
$this->loadBootstrap();
$response = null;
// Check if we're installed
if ($this->app->isInstalled()) {
// Call each step in the line
// @todo Move these to individual middleware, this is basically a duplicated middleware pipeline
$response = $this->trySteps([
// Set the active language for the site, based either on the site locale, or the
// current user record. This can be changed later as well, during runtime.
// Start localization library.
'setSystemLocale',
// Set the system time zone (what should be the same as the database one)
'initializeSystemTimezone',
// Handle updating automatically
'handleUpdates',
// Set up packages first.
// We do this because we don't want the entity manager to be loaded and we
// want to give packages an opportunity to replace classes and load new classes
'setupPackages',
// Pre-load class aliases
// This is needed to avoid the problem of calling functions that accept a class alias as a parameter,
// but that alias isn't still auto-loaded. For example, that would result in the following error:
// Argument 1 passed to functionName() must be an instance of Area, instance of Concrete\Core\Area\Area given.
// Don't use this method: it will be removed in future concrete5 versions
'preloadClassAliases',
// Load site specific timezones. Has to come after packages because it
$this->status = self::STATUS_ACTIVE;
}
}
/**
* Begin the runtime.
*/
public function run()
{
switch ($this->status) {
case self::STATUS_ENDED:
// We've already ended, lets just return
return;
case self::STATUS_INACTIVE:
throw new \RuntimeException('Runtime has not yet booted.');
}
$runner = $this->getRunner();
$response = $runner->run();
if ($response) {
$this->sendResponse($response);
}
return $response;
}
/**
* The method that handles properly sending a response.
*
* @param \Symfony\Component\HttpFoundation\Response $response
*/
protected function sendResponse(Response $response)
{
$response->send();
// Set the status to ended
$this->status = self::STATUS_ENDED;
}
* Include all autoloaders.
* ----------------------------------------------------------------------------
*/
require __DIR__ . '/bootstrap/autoload.php';
/*
* ----------------------------------------------------------------------------
* Begin concrete5 startup.
* ----------------------------------------------------------------------------
*/
$app = require __DIR__ . '/bootstrap/start.php';
/** @var \Concrete\Core\Application\Application $app */
/*
* ----------------------------------------------------------------------------
* Run the runtime.
* ----------------------------------------------------------------------------
*/
$runtime = $app->getRuntime();
if ($response = $runtime->run()) {
/*
* ------------------------------------------------------------------------
* Shut it down.
* ------------------------------------------------------------------------
*/
$app->shutdown();
} else {
return $app;
}
<?php
if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
$_SERVER['HTTPS']='on';
}
require 'concrete/dispatcher.php';
Key | Value |
Version | 8.5.12 |
Installed Version | 8.5.12 |
Database Version | 20220319043123 |
Key | Value |
concrete.version | 8.5.12 |
concrete.version_installed | 8.5.12 |
concrete.version_db | 20220319043123 |
concrete.installed | true |
concrete.locale | en_US |
concrete.charset | UTF-8 |
concrete.charset_bom | |
concrete.maintenance_mode | false |
concrete.debug.display_errors | true |
concrete.debug.detail | debug |
concrete.debug.error_reporting | null |
concrete.debug.hide_keys.config.0 | *********************** |
concrete.debug.hide_keys.config.1 | *********************************** |
concrete.debug.hide_keys.config.2 | ****************************** |
concrete.debug.hide_keys.config.3 | ********************************* |
concrete.debug.hide_keys.config.4 | ************************************** |
concrete.debug.hide_keys.config.5 | ******************************************** |
concrete.debug.hide_keys.config.6 | ******************************************** |
concrete.debug.hide_keys.config.7 | ************************ |
concrete.debug.hide_keys.config.8 | ************ |
concrete.proxy.host | null |
concrete.proxy.port | null |
concrete.proxy.user | null |
concrete.proxy.password | *** |
concrete.upload.extensions | *.flv;*.jpg;*.gif;*.jpeg;*.ico;*.docx;*.xla;*.png;*.psd;*.swf;*.doc;*.txt;*.xls;*.xlsx;*.csv;*.pdf;*.tiff;*.rtf;*.m4a;*.mov;*.wmv;*.mpeg;*.mpg;*.wav;*.3gp;*.avi;*.m4v;*.mp4;*.mp3;*.qt;*.ppt;*.pptx;*.kml;*.xml;*.svg;*.webm;*.ogg;*.ogv |
concrete.upload.extensions_blacklist | *.php;*.php2;*.php3;*.php4;*.php5;*.php7;*.php8;*.phtml;*.phar;*.htaccess;*.pl;*.phpsh;*.pht;*.shtml;*.cgi |
concrete.upload.chunking.enabled | true |
concrete.upload.chunking.chunkSize | null |
concrete.export.csv.include_bom | false |
concrete.export.csv.datetime_format | Y-m-d\TH:i:sP |
concrete.interface.panel.page_relations | false |
concrete.mail.method | PHP_MAIL |
concrete.mail.methods.smtp.server | |
concrete.mail.methods.smtp.port | |
concrete.mail.methods.smtp.username | |
concrete.mail.methods.smtp.password | |
concrete.mail.methods.smtp.encryption | |
concrete.mail.methods.smtp.messages_per_connection | null |
concrete.mail.methods.smtp.helo_domain | localhost |
concrete.cache.enabled | true |
concrete.cache.lifetime | 21600 |
concrete.cache.overrides | false |
concrete.cache.blocks | false |
concrete.cache.assets | false |
concrete.cache.theme_css | false |
concrete.cache.pages | 0 |
concrete.cache.doctrine_dev_mode | false |
concrete.cache.full_page_lifetime | default |
concrete.cache.full_page_lifetime_value | null |
concrete.cache.full_contents_assets_hash | false |
concrete.cache.directory | /home/u529732852/domains/creatingsparks.co.uk/public_html/application/files/cache |
concrete.cache.directory_relative | null |
concrete.cache.page.directory | /home/u529732852/domains/creatingsparks.co.uk/public_html/application/files/cache/pages |
concrete.cache.page.adapter | file |
concrete.cache.levels.overrides.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.overrides.drivers.core_filesystem.class | Concrete\Core\Cache\Driver\FileSystemStashDriver |
concrete.cache.levels.overrides.drivers.core_filesystem.options.path | /home/u529732852/domains/creatingsparks.co.uk/public_html/application/files/cache/overrides |
concrete.cache.levels.overrides.drivers.core_filesystem.options.dirPermissions | 493 |
concrete.cache.levels.overrides.drivers.core_filesystem.options.filePermissions | 420 |
concrete.cache.levels.overrides.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.overrides.drivers.redis.options.prefix | c5_overrides |
concrete.cache.levels.overrides.drivers.redis.options.database | 0 |
concrete.cache.levels.overrides.preferred_driver | core_filesystem |
concrete.cache.levels.expensive.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.expensive.drivers.core_filesystem.class | Concrete\Core\Cache\Driver\FileSystemStashDriver |
concrete.cache.levels.expensive.drivers.core_filesystem.options.path | /home/u529732852/domains/creatingsparks.co.uk/public_html/application/files/cache/expensive |
concrete.cache.levels.expensive.drivers.core_filesystem.options.dirPermissions | 493 |
concrete.cache.levels.expensive.drivers.core_filesystem.options.filePermissions | 420 |
concrete.cache.levels.expensive.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.expensive.drivers.redis.options.prefix | c5_expensive |
concrete.cache.levels.expensive.drivers.redis.options.database | 0 |
concrete.cache.levels.expensive.preferred_driver | core_filesystem |
concrete.cache.levels.object.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.object.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.object.drivers.redis.options.prefix | c5_object |
concrete.cache.levels.object.drivers.redis.options.database | 0 |
concrete.cache.levels.object.preferred_driver | core_ephemeral |
concrete.cache.clear.thumbnails | true |
concrete.cache.clear.last_cleared | 1648642409 |
concrete.cache.last_cleared | 1697016523 |
concrete.design.enable_custom | true |
concrete.design.enable_layouts | true |
concrete.log.emails | true |
concrete.log.errors | true |
concrete.log.spam | false |
concrete.log.api | false |
concrete.log.enable_dashboard_report | true |
concrete.log.configuration.mode | simple |
concrete.log.configuration.simple.core_logging_level | NOTICE |
concrete.log.configuration.simple.handler | database |
concrete.log.configuration.simple.file.file | |
concrete.jobs.enable_scheduling | true |
concrete.filesystem.temp_directory | null |
concrete.filesystem.permissions.file | 420 |
concrete.filesystem.permissions.directory | 493 |
concrete.email.enabled | true |
concrete.email.default.address | ************************** |
concrete.email.default.name | Creating Sparks |
concrete.email.form_block.address | |
concrete.email.forgot_password.address | |
concrete.email.forgot_password.name | |
concrete.email.validate_registration.address | |
concrete.email.validate_registration.name | |
concrete.email.workflow_notification.address | |
concrete.email.workflow_notification.name | |
concrete.email.register_notification.address | |
concrete.form.store_form_submissions | auto |
concrete.marketplace.enabled | false |
concrete.marketplace.request_timeout | 30 |
concrete.marketplace.token | null |
concrete.marketplace.site_token | null |
concrete.marketplace.intelligent_search | false |
concrete.marketplace.log_requests | false |
concrete.external.intelligent_search_help | true |
concrete.external.news | true |
concrete.misc.user_timezones | false |
concrete.misc.package_backup_directory | /home/u529732852/domains/creatingsparks.co.uk/public_html/application/files/trash |
concrete.misc.enable_progressive_page_reindex | true |
concrete.misc.mobile_theme_id | 0 |
concrete.misc.sitemap_approve_immediately | true |
concrete.misc.enable_translate_locale_en_us | false |
concrete.misc.page_search_index_lifetime | 259200 |
concrete.misc.enable_trash_can | true |
concrete.misc.default_jpeg_image_compression | 80 |
concrete.misc.default_png_image_compression | 9 |
concrete.misc.default_thumbnail_format | auto |
concrete.misc.inplace_image_operations_limit | 4194304 |
concrete.misc.basic_thumbnailer_generation_strategy | now |
concrete.misc.help_overlay | true |
concrete.misc.require_version_comments | false |
concrete.misc.enable_move_blocktypes_across_sets | false |
concrete.misc.image_editor_cors_policy.enable_cross_origin | false |
concrete.misc.image_editor_cors_policy.anonymous_request | true |
concrete.misc.generator_tag_display_in_header | true |
concrete.misc.login_redirect | HOMEPAGE |
concrete.misc.access_entity_updated | 1669825811 |
concrete.misc.latest_version | 9.1.3 |
concrete.misc.do_page_reindex_check | false |
concrete.misc.login_redirect_cid | 0 |
concrete.theme.compress_preprocessor_output | false |
concrete.theme.generate_less_sourcemap | false |
concrete.updates.enable_auto_update_packages | false |
concrete.updates.enable_permissions_protection | true |
concrete.updates.check_threshold | 172800 |
concrete.updates.services.get_available_updates | https://marketplace.concretecms.com/tools/update_core |
concrete.updates.services.inspect_update | https://marketplace.concretecms.com/tools/inspect_update |
concrete.updates.skip_core | false |
concrete.paths.trash | /!trash |
concrete.paths.drafts | /!drafts |
concrete.icons.page_template.width | 120 |
concrete.icons.page_template.height | 90 |
concrete.icons.theme_thumbnail.width | 120 |
concrete.icons.theme_thumbnail.height | 90 |
concrete.icons.file_manager_listing.handle | file_manager_listing |
concrete.icons.file_manager_listing.width | 60 |
concrete.icons.file_manager_listing.height | 60 |
concrete.icons.file_manager_detail.handle | file_manager_detail |
concrete.icons.file_manager_detail.width | 400 |
concrete.icons.file_manager_detail.height | 400 |
concrete.icons.user_avatar.width | 80 |
concrete.icons.user_avatar.height | 80 |
concrete.icons.user_avatar.default | /concrete/images/avatar_none.png |
concrete.file_manager.images.use_exif_data_to_rotate_images | false |
concrete.file_manager.images.manipulation_library | gd |
concrete.file_manager.images.create_high_dpi_thumbnails | true |
concrete.file_manager.images.preview_image_size | small |
concrete.file_manager.images.preview_image_popover | true |
concrete.file_manager.images.svg_sanitization.action | sanitize |
concrete.file_manager.images.svg_sanitization.allowed_tags | |
concrete.file_manager.images.svg_sanitization.allowed_attributes | |
concrete.file_manager.images.image_editor_save_area_background_color | |
concrete.file_manager.items_per_page_options.0 | 10 |
concrete.file_manager.items_per_page_options.1 | 25 |
concrete.file_manager.items_per_page_options.2 | 50 |
concrete.file_manager.items_per_page_options.3 | 100 |
concrete.file_manager.items_per_page_options.4 | 250 |
concrete.file_manager.results | 10 |
concrete.search_users.results | 10 |
concrete.sitemap_xml.file | sitemap.xml |
concrete.sitemap_xml.frequency | weekly |
concrete.sitemap_xml.priority | 0.5 |
concrete.accessibility.toolbar_titles | true |
concrete.accessibility.toolbar_large_font | false |
concrete.accessibility.display_help_system | false |
concrete.accessibility.toolbar_tooltips | true |
concrete.i18n.choose_language_login | false |
concrete.i18n.auto_install_package_languages | true |
concrete.i18n.community_translation.entry_point | https://translate.concretecms.org/api |
concrete.i18n.community_translation.api_token | |
concrete.i18n.community_translation.progress_limit | 60 |
concrete.i18n.community_translation.cache_lifetime | 3600 |
concrete.i18n.community_translation.package_url | https://translate.concretecms.org/translate/package |
concrete.urls.concrete5 | http://marketplace.concretecms.com |
concrete.urls.concrete5_secure | https://marketplace.concretecms.com |
concrete.urls.newsflow | http://newsflow.concrete5.org |
concrete.urls.background_feed | //backgroundimages.concrete5.org/wallpaper |
concrete.urls.privacy_policy | //www.concretecms.com/about/legal/privacy-policy |
concrete.urls.background_feed_secure | https://backgroundimages.concrete5.org/wallpaper |
concrete.urls.background_info | http://backgroundimages.concrete5.org/get_image_data.php |
concrete.urls.videos | https://www.youtube.com/user/concrete5cms/videos |
concrete.urls.help.developer | http://documentation.concrete5.org/developers |
concrete.urls.help.user | http://documentation.concrete5.org/editors |
concrete.urls.help.forum | http://www.concrete5.org/community/forums |
concrete.urls.help.slack | https://www.concrete5.org/slack |
concrete.urls.paths.menu_help_service | /tools/get_remote_help_list/ |
concrete.urls.paths.site_page | /private/sites |
concrete.urls.paths.newsflow_slot_content | /tools/slot_content/ |
concrete.urls.paths.marketplace.projects | /profile/projects/ |
concrete.urls.paths.marketplace.connect | /marketplace/connect |
concrete.urls.paths.marketplace.connect_success | /marketplace/connect/-/connected |
concrete.urls.paths.marketplace.connect_validate | /marketplace/connect/-/validate |
concrete.urls.paths.marketplace.connect_new_token | /marketplace/connect/-/generate_token |
concrete.urls.paths.marketplace.checkout | /cart/-/add |
concrete.urls.paths.marketplace.purchases | /marketplace/connect/-/get_available_licenses |
concrete.urls.paths.marketplace.item_information | /marketplace/connect/-/get_item_information |
concrete.urls.paths.marketplace.item_free_license | /marketplace/connect/-/enable_free_license |
concrete.urls.paths.marketplace.remote_item_list | /marketplace/ |
concrete.white_label.logo | https://www.creatingsparks.com/application/files/8116/6931/2713/favicon.ico |
concrete.white_label.name | |
concrete.white_label.background_image | null |
concrete.white_label.background_url | https://www.creatingsparks.com/application/files/3216/6989/7511/CS_HEADER_2560px.jpeg |
concrete.session.name | CONCRETE5 |
concrete.session.handler | file |
concrete.session.redis.database | 1 |
concrete.session.save_path | null |
concrete.session.max_lifetime | 7200 |
concrete.session.gc_probability | 1 |
concrete.session.gc_divisor | 100 |
concrete.session.cookie.cookie_path | false |
concrete.session.cookie.cookie_lifetime | 0 |
concrete.session.cookie.cookie_domain | false |
concrete.session.cookie.cookie_secure | false |
concrete.session.cookie.cookie_httponly | true |
concrete.session.cookie.cookie_raw | false |
concrete.session.cookie.cookie_samesite | null |
concrete.session.remember_me.lifetime | 1209600 |
concrete.user.registration.enabled | false |
concrete.user.registration.type | disabled |
concrete.user.registration.captcha | true |
concrete.user.registration.email_registration | false |
concrete.user.registration.display_username_field | true |
concrete.user.registration.display_confirm_password_field | true |
concrete.user.registration.validate_email | false |
concrete.user.registration.approval | false |
concrete.user.registration.notification | false |
concrete.user.group.badge.default_point_value | 50 |
concrete.user.username.maximum | 64 |
concrete.user.username.minimum | 3 |
concrete.user.username.allowed_characters.boundary | A-Za-z0-9 |
concrete.user.username.allowed_characters.middle | A-Za-z0-9_\. |
concrete.user.username.allowed_characters.requirement_string | A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end). |
concrete.user.username.allowed_characters.error_string | A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end). |
concrete.user.password.maximum | 128 |
concrete.user.password.minimum | 5 |
concrete.user.password.required_special_characters | 0 |
concrete.user.password.required_lower_case | 0 |
concrete.user.password.required_upper_case | 0 |
concrete.user.password.reuse | 0 |
concrete.user.password.hash_portable | false |
concrete.user.password.hash_cost_log2 | 12 |
concrete.user.password.legacy_salt | |
concrete.user.email.test_mx_record | false |
concrete.user.email.strict | true |
concrete.user.private_messages.throttle_max | 20 |
concrete.user.private_messages.throttle_max_timespan | 15 |
concrete.user.deactivation.enable_login_threshold_deactivation | false |
concrete.user.deactivation.login.threshold | 120 |
concrete.user.deactivation.authentication_failure.enabled | false |
concrete.user.deactivation.authentication_failure.amount | 5 |
concrete.user.deactivation.authentication_failure.duration | 300 |
concrete.user.deactivation.message | This user is inactive. Please contact us regarding this account. |
concrete.spam.whitelist_group | 0 |
concrete.spam.notify_email | |
concrete.calendar.colors.text | #ffffff |
concrete.calendar.colors.background | #3A87AD |
concrete.calendar.topic_attribute | event_categories |
concrete.security.session.invalidate_on_user_agent_mismatch | true |
concrete.security.session.invalidate_on_ip_mismatch | true |
concrete.security.session.invalidate_inactive_users.enabled | false |
concrete.security.session.invalidate_inactive_users.time | 300 |
concrete.security.misc.x_frame_options | SAMEORIGIN |
concrete.security.trusted_proxies.headers | 0 |
concrete.permissions.forward_to_login | true |
concrete.permissions.model | advanced |
concrete.seo.exclude_words | a, an, as, at, before, but, by, for, from, is, in, into, like, of, off, on, onto, per, since, than, the, this, that, to, up, via, with |
concrete.seo.url_rewriting | true |
concrete.seo.url_rewriting_all | false |
concrete.seo.redirect_to_canonical_url | 0 |
concrete.seo.canonical_url | null |
concrete.seo.canonical_url_alternative | null |
concrete.seo.trailing_slash | false |
concrete.seo.title_format | %2$s :: %1$s |
concrete.seo.title_segment_separator | :: |
concrete.seo.page_path_separator | - |
concrete.seo.group_name_separator | / |
concrete.seo.segment_max_length | 128 |
concrete.seo.paging_string | ccm_paging_p |
concrete.statistics.track_downloads | true |
concrete.limits.sitemap_pages | 100 |
concrete.limits.delete_pages | 100 |
concrete.limits.copy_pages | 10 |
concrete.limits.page_search_index_batch | 200 |
concrete.limits.job_queue_batch | 10 |
concrete.limits.style_customizer.size_min | -50 |
concrete.limits.style_customizer.size_max | 200 |
concrete.page.search.always_reindex | false |
concrete.composer.idle_timeout | 1 |
concrete.api.enabled | false |
concrete.api.grant_types.client_credentials | true |
concrete.api.grant_types.authorization_code | true |
concrete.api.grant_types.password_credentials | false |
concrete.api.grant_types.refresh_token | true |
concrete.mutex.semaphore.priority | 100 |
concrete.mutex.semaphore.class | Concrete\Core\System\Mutex\SemaphoreMutex |
concrete.mutex.file_lock.priority | 50 |
concrete.mutex.file_lock.class | Concrete\Core\System\Mutex\FileLockMutex |
concrete.style_customizer.updater.ignored_values.preset-fonts-file | Concrete\Core\StyleCustomizer\Style\Value\BasicValue |
concrete.version_db_installed | 20220319043123 |
concrete.maintenance.version_job_page_num | 0 |
Key | Value |
fikker-KEPi-Z7Xa | ******************************** |
Key | Value |
LSPHP_ProcessGroup | ** |
PATH | **************************** |
HTTP_ACCEPT | *** |
HTTP_ACCEPT_ENCODING | *********************** |
HTTP_COOKIE | ************************************************* |
HTTP_HOST | ********************** |
HTTP_REFERER | ****************************** |
HTTP_USER_AGENT | ******************************************************************************************************* |
DOCUMENT_ROOT | ********************************************************* |
REMOTE_ADDR | ************** |
REMOTE_PORT | **** |
SERVER_ADDR | ************** |
SERVER_NAME | ********************** |
SERVER_ADMIN | |
SERVER_PORT | *** |
REQUEST_SCHEME | ***** |
REQUEST_URI | * |
HTTPS | ** |
CRAWLER_USLEEP | **** |
CRAWLER_LOAD_LIMIT_ENFORCE | ** |
X_SPDY | ***** |
SSL_PROTOCOL | ******* |
SSL_CIPHER | ********************** |
SSL_CIPHER_USEKEYSIZE | *** |
SSL_CIPHER_ALGKEYSIZE | *** |
SCRIPT_FILENAME | ******************************************************************* |
QUERY_STRING | |
SCRIPT_URI | ******************************* |
SCRIPT_URL | * |
SCRIPT_NAME | ********** |
SERVER_PROTOCOL | ******** |
SERVER_SOFTWARE | ********* |
REQUEST_METHOD | *** |
X-LSCACHE | ********************** |
PHP_SELF | ********** |
REQUEST_TIME_FLOAT | *** |
REQUEST_TIME | *** |
Key | Value |
LSPHP_ProcessGroup | ** |
PATH | **************************** |