-function fail($error)
-{
- http_response_code(500);
- include_once 'page.inc.php';
- ob_start();
- require_once './500.html';
- print str_replace('[[debug]]', $error, ob_get_clean());
-}
-set_exception_handler('fail');
-register_shutdown_function(function () {
- # display failure page for fatal exceptions
- $error = error_get_last();
- if (!($error['type'] & (E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR))) return;
- fail("Fatal: $error[message] in $error[file]:$error[line]");
-});
-
-include_once 'auth.inc.php';
-$Edit = isset($_GET['edit']);
-
-# distinguish subpage Args from topmost Page script
-
-$Args = '';
-$Page = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
-$Page = urldecode(trim($Page, '/')) ?: 'index';
-while (TRUE) {
- if (file_exists("$Page.php")) {
- break;
- }
+define('DOCROOT', getcwd());
+set_include_path(implode(PATH_SEPARATOR, [ DOCROOT, __DIR__ ]));
+
+include_once 'error.inc.php';
+
+# setup requested page
+
+$request = preg_replace('/\?.*/', '', @$_SERVER['PATH_INFO'] ?: $_SERVER['REQUEST_URI']);
+$request = urldecode(trim($request, '/')) ?: 'index';