X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/9dc3198f0265a80f5a232327733974f9980ed7f2..97cb45922441379828a9ebea0bafb0f8a657ea8a:/page.php diff --git a/page.php b/page.php index 8b264bf..730f015 100644 --- a/page.php +++ b/page.php @@ -2,6 +2,18 @@ error_reporting(E_ALL); ini_set('display_errors', TRUE); +function getoutput($blocks = []) +{ + $rep = []; + foreach ($blocks as $name => $html) { + $rep["[[$name]]"] = sprintf('%s', + is_numeric($name) ? '' : "[[$name]]", + preg_replace('{}', '', $html) + ); + } + return str_replace(array_keys($rep), array_values($rep), ob_get_clean()); +} + function fail($error) { http_response_code(500); @@ -27,6 +39,17 @@ $Args = ''; $Page = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']); $Page = urldecode(trim($Page, '/')) ?: 'index'; while (TRUE) { + if (file_exists("$Page/.private")) { + # access restriction + if (!isset($User)) { + http_response_code(403); + include_once 'page.inc.php'; + ob_start(); + require_once './403.html'; + exit; + } + } + if (file_exists("$Page.php")) { break; } @@ -61,18 +84,6 @@ print "\n\n"; # execute dynamic code if ($Page) { - function getoutput($blocks = []) - { - $rep = []; - foreach ($blocks as $name => $html) { - $rep["[[$name]]"] = sprintf('%s', - is_numeric($name) ? '' : "[[$name]]", - preg_replace('{}', '', $html) - ); - } - return str_replace(array_keys($rep), array_values($rep), ob_get_clean()); - } - $found |= require "./$Page.php"; }