$cookieVal) { // Check for SAML cookies using regex patterns foreach ($cookieRegexList as $regex) { if (preg_match("#$regex#ui", $cookieKey)) { setcookie($cookieKey, '', [ 'Expires' => time() - 3600, 'Path' => '/', 'SameSite' => 'Lax', 'HttpOnly' => true ]); } } } // Clear ALL cookies foreach ($_COOKIE as $cookieName => $cookieValue) { // Clear with domain setcookie($cookieName, '', [ 'expires' => time() - 3600, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'], 'secure' => isset($_SERVER['HTTPS']), 'httponly' => true ]); // Also try without domain (for cookies set without domain) setcookie($cookieName, '', [ 'expires' => time() - 3600, 'path' => '/', 'secure' => isset($_SERVER['HTTPS']), 'httponly' => true ]); // Try with parent domain for cross-domain cookies if (substr_count($_SERVER['HTTP_HOST'], '.') > 1) { $parentDomain = substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.')); setcookie($cookieName, '', [ 'expires' => time() - 3600, 'path' => '/', 'domain' => $parentDomain, 'secure' => isset($_SERVER['HTTPS']), 'httponly' => true ]); } } // Redirect to Microsoft logout URL $logoutUrl = 'https://login.microsoftonline.com/18843e6e-1846-456c-a05c-500f0aee12f6/oauth2/logout'; header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header('Location: ' . $logoutUrl); exit; } try { include_once(((strpos($t4_config['phar'], '.phar') !== false) ? 'phar://' : '').$_SERVER['DOCUMENT_ROOT'].$t4_config['phar'].'/vendor/autoload.php'); if (!class_exists('\AccessControl\Core\Config')) { throw new \Exception('AccessControl Library is not loaded correctly'); } if (!empty($t4_config['config'])) { AccessControl\Core\Config::setJSON($_SERVER['DOCUMENT_ROOT'].$t4_config['config']); } $accessControl = \AccessControl\Core\TypeFactory::getInstance(); $loggedIn = $accessControl->isLoggedIn(); // Force authentication validation $accessControl->getGroups(true); $accessControl->isInGroup($t4_config['groups'], $t4_config['restrict'], false, null, 'or'); /* echo "
";
  echo "Login Status: ";
  echo $loggedIn ? "isLoggedIn" : "isNotLoggedIn";
  echo "\n\n";

  echo "User Groups:\n";
  print_r($accessControl->getGroups(true));
  echo "\n";

  echo "Is in Group:\n";
  var_export($accessControl->isInGroup(
      $t4_config['groups'],
      $t4_config['restrict'],
      false,
      null,
      'or'
  ));
  echo "
"; */ } catch (Exception $e) { echo ''; } ?> Profiles | University of Chester

Peter Stringer

Computer Science BSc (Hons)

Peter Stringer

"My favourite module was User Experience, and it has been throughout my university experience. To explore what makes a great piece of software."

BSc Computer Science graduate, Peter, tells us about his favourite part of the course, and gives some advice to new students studying at the University of Chester.

Peter Stringer

Graduate Story - Peter Stringer