Skip to content

Instantly share code, notes, and snippets.

@matdave
Created November 10, 2025 23:07
Show Gist options
  • Select an option

  • Save matdave/a75a43b970f9a3fdb330a563caf7c177 to your computer and use it in GitHub Desktop.

Select an option

Save matdave/a75a43b970f9a3fdb330a563caf7c177 to your computer and use it in GitHub Desktop.
MODX Selective Session Enabler
<?php
$contextKey = $modx->resource->context_key ?? '';
if (!$modx->startSession()) {
$modx->getUser($contextKey);
return false;
}
$modx->getUser($contextKey);
$site_sessionname = $modx->getOption('session_name', $options, '');
if (!empty($site_sessionname)) session_name($site_sessionname);
session_start();
$cookieLifetime= (integer) $modx->getOption('session_cookie_lifetime', $options, 0);
$_SESSION['modx.' . $contextKey . '.session.cookie.lifetime'] = $cookieLifetime;
$cookieExpiration = time() + $cookieLifetime;
$cookiePath= $modx->getOption('session_cookie_path', $options, MODX_BASE_URL);
$cookieDomain= $modx->getOption('session_cookie_domain', $options, '');
$cookieSecure= (boolean) $modx->getOption('session_cookie_secure', $options, false);
$cookieHttpOnly= (boolean) $modx->getOption('session_cookie_httponly', $options, true);
$cookieSamesite= $modx->getOption('session_cookie_samesite', $options, '');
$cookie_settings = [
'expires' => $cookieExpiration,
'path' => $cookiePath,
'domain' => $cookieDomain,
'secure' => $cookieSecure,
'httponly' => $cookieHttpOnly
];
if ($cookieSamesite !== '') $cookie_settings['samesite'] = $cookieSamesite;;
if(PHP_VERSION_ID < 70300) {
setcookie(session_name(), session_id(), $cookieExpiration, $cookiePath, $cookieDomain,
$cookieSecure, $cookieHttpOnly);
} else {
setcookie(session_name(), session_id(), $cookie_settings);
}
return true;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment