X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FApp.php;h=f7c929820d308640f7b3156d684b58d997417d70;hb=b9e091eb2f9dce22d53c4bd397d9dda52930a58f;hp=d4e3021f8253827c40ceea2272c97b555e1a6235;hpb=537b74f3079a046750bc210bbd9e51c1187b361d;p=friendica.git diff --git a/src/App.php b/src/App.php index d4e3021f82..f7c929820d 100644 --- a/src/App.php +++ b/src/App.php @@ -1,6 +1,6 @@ profiler->set($start_time, 'start'); $this->profiler->set(microtime(true), 'classinit'); @@ -576,7 +580,7 @@ class App try { // Missing DB connection: ERROR if ($this->mode->has(App\Mode::LOCALCONFIGPRESENT) && !$this->mode->has(App\Mode::DBAVAILABLE)) { - throw new HTTPException\InternalServerErrorException('Apologies but the website is unavailable at the moment.'); + throw new HTTPException\InternalServerErrorException($this->l10n->t('Apologies but the website is unavailable at the moment.')); } if (!$this->mode->isInstall()) { @@ -596,29 +600,27 @@ class App } // ZRL - if (!empty($_GET['zrl']) && $this->mode->isNormal() && !$this->mode->isBackend()) { - if (!local_user()) { - // Only continue when the given profile link seems valid - // Valid profile links contain a path with "/profile/" and no query parameters - if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "") && - strstr(parse_url($_GET['zrl'], PHP_URL_PATH), "/profile/")) { - if (Core\Session::get('visitor_home') != $_GET["zrl"]) { - Core\Session::set('my_url', $_GET['zrl']); - Core\Session::set('authenticated', 0); - - $remote_contact = Contact::getByURL($_GET['zrl'], false, ['subscribe']); - if (!empty($remote_contact['subscribe'])) { - $_SESSION['remote_comment'] = $remote_contact['subscribe']; - } + if (!empty($_GET['zrl']) && $this->mode->isNormal() && !$this->mode->isBackend() && !local_user()) { + // Only continue when the given profile link seems valid + // Valid profile links contain a path with "/profile/" and no query parameters + if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "") && + strstr(parse_url($_GET['zrl'], PHP_URL_PATH), "/profile/")) { + if (Core\Session::get('visitor_home') != $_GET["zrl"]) { + Core\Session::set('my_url', $_GET['zrl']); + Core\Session::set('authenticated', 0); + + $remote_contact = Contact::getByURL($_GET['zrl'], false, ['subscribe']); + if (!empty($remote_contact['subscribe'])) { + $_SESSION['remote_comment'] = $remote_contact['subscribe']; } - - Model\Profile::zrlInit($this); - } else { - // Someone came with an invalid parameter, maybe as a DDoS attempt - // We simply stop processing here - $this->logger->debug('Invalid ZRL parameter.', ['zrl' => $_GET['zrl']]); - throw new HTTPException\ForbiddenException(); } + + Model\Profile::zrlInit($this); + } else { + // Someone came with an invalid parameter, maybe as a DDoS attempt + // We simply stop processing here + $this->logger->debug('Invalid ZRL parameter.', ['zrl' => $_GET['zrl']]); + throw new HTTPException\ForbiddenException(); } } @@ -700,9 +702,15 @@ class App $module = $router->getModule(); } + // Processes data from GET requests + $httpinput = $httpInput->process(); + $input = array_merge($httpinput['variables'], $httpinput['files'], $request ?? $_REQUEST); + // Let the module run it's internal process (init, get, post, ...) - $response = $module->run($_POST, $_REQUEST); - if ($response->getType() === $response::TYPE_HTML) { + $timestamp = microtime(true); + $response = $module->run($input); + $this->profiler->set(microtime(true) - $timestamp, 'content'); + if ($response->getHeaderLine(ICanCreateResponses::X_HEADER) === ICanCreateResponses::TYPE_HTML) { $page->run($this, $this->baseURL, $this->args, $this->mode, $response, $this->l10n, $this->profiler, $this->config, $pconfig); } else { $page->exit($response);