Succès : " . $msg . "

\n"; } // When the user requests something unexpected function userError($msg) { global $final_message; $final_message = "

Erreur utilisataire : " . $msg . "

\n"; http_response_code(403); executePage(); } // When the system did something unexpected function serverError($msg) { global $final_message; $final_message = "

Server error: The server encountered an error: " . $msg . "

\n"; http_response_code(500); error_log("Niver internal error: " . strip_tags($msg)); executePage(); } function processForm($requireLogin = true) { if (http_response_code() !== 200) return false; if (empty($_POST) AND $requireLogin AND !isset($_SESSION['username'])) echo '

Ce formulaire ne sera pas accepté car il faut se connecter avant.

'; if (empty($_POST)) return false; if ($requireLogin AND !isset($_SESSION['username'])) userError("Vous devez être connecté·e pour effectuer cette action."); return true; } function query($action, $table, $conditions = [], $column = NULL) { $query = match ($action) { 'select' => 'SELECT *', 'delete' => 'DELETE', }; $query .= " FROM $table"; foreach ($conditions as $key => $val) { if ($key === array_key_first($conditions)) $query .= " WHERE $key = :$key"; else $query .= " AND $key = :$key"; } $db = new PDO('sqlite:' . DB_PATH); $op = $db->prepare($query); foreach ($conditions as $key => $val) $op->bindValue(":$key", $val); $op->execute(); if (isset($column)) return array_column($op->fetchAll(PDO::FETCH_ASSOC), $column); return $op->fetchAll(PDO::FETCH_ASSOC); } function displayIndex() { ?> redir."); header('Location: ' . CONF['common']['prefix'] . '/' . $_GET['redir']); } else { header('Location: ' . CONF['common']['prefix'] . '/'); } } // PHP rmdir() only works on empty directories function removeDirectory($dir) { $dirObj = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS); $files = new RecursiveIteratorIterator($dirObj, RecursiveIteratorIterator::CHILD_FIRST); foreach ($files as $file) $file->isDir() && !$file->isLink() ? rmdir($file->getPathname()) : unlink($file->getPathname()); if (rmdir($dir) !== true) serverError("Unable to remove directory."); } function equalArrays($a, $b) { return array_diff($a, $b) === [] AND array_diff($b, $a) === []; } function linkToDocs($ref, $title) { return '' . $title . ''; }