From 58cfdfe14386e48047f3620d1c09218fdbaac5f0 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Sun, 11 May 2014 14:54:51 +0200 Subject: [PATCH] [ticket/12099] Correctly fix go back to root before prepending the root path This allows moving app.php outside of phpBB and still work as expected PHPBB3-12099 --- phpBB/phpbb/path_helper.php | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/phpBB/phpbb/path_helper.php b/phpBB/phpbb/path_helper.php index eb2cbf7313..b206f491d0 100644 --- a/phpBB/phpbb/path_helper.php +++ b/phpBB/phpbb/path_helper.php @@ -184,17 +184,21 @@ class path_helper * Append ../ to the end of the phpbb_root_path as many times * as / exists in path_info */ - return $this->web_root_path = $this->phpbb_root_path . str_repeat('../', $corrections); + $this->web_root_path = $this->filesystem->clean_path(str_repeat('../', $corrections) . $this->phpbb_root_path); + } + else + { + /* + * If we're here it means we're at a re-written path, so we must + * correct the relative path for web URLs. We must append ../ + * to the end of the root path as many times as / exists in path_info + * less one time (because the script, e.g. /app.php, doesn't exist in + * the URL) + */ + $this->web_root_path = $this->filesystem->clean_path(str_repeat('../', $corrections - 1) . $this->phpbb_root_path); } - /* - * If we're here it means we're at a re-written path, so we must - * correct the relative path for web URLs. We must append ../ - * to the end of the root path as many times as / exists in path_info - * less one time (because the script, e.g. /app.php, doesn't exist in - * the URL) - */ - return $this->web_root_path = $this->phpbb_root_path . str_repeat('../', $corrections - 1); + return $this->web_root_path; } /**