page: fix variable dependencies in error headers
[minimedit.git] / page.php
index 932e72943b4f8b1ee1d35c7f512407141d481b32..e23b3e23bce2a5abdc1e975d3108774d697407b9 100644 (file)
--- a/page.php
+++ b/page.php
@@ -55,7 +55,7 @@ function getoutput($blocks = [])
        # keep either login or logout parts depending on user level
        global $User;
        $hideclass = empty($User) ? 'login' : 'logout';
-       $doc = preg_replace('{\s*<(p|li|span) class="'.$hideclass.'">.*?</\1>}s', '', $doc);
+       $doc = preg_replace('{\s*<([a-z]+) class="'.$hideclass.'">.*?</\1>}s', '', $doc);
 
        return preg_replace_callback(
                '{ (?<! <!--BLOCK: ) \[\[ ([^] ]+) ([^]]*) \]\] }x',
@@ -83,6 +83,7 @@ set_include_path(implode(PATH_SEPARATOR, [ DOCROOT, __DIR__ ]));
 
 function fail($error)
 {
+       global $User, $Page, $Args;
        http_response_code(500);
        if (!isset($Article)) {
                $Article = new ArchiveArticle(NULL);
@@ -90,8 +91,8 @@ function fail($error)
        }
        include_once 'page.inc.php';
        ob_start();
-       require_once '500.inc.html';
-       print getoutput(['debug' => $error]);
+       require '500.inc.html';
+       print getoutput(['debug' => htmlspecialchars($error)]);
 }
 
 set_exception_handler('fail');