diff options
| -rw-r--r-- | phpBB/includes/functions.php | 6 | ||||
| -rw-r--r-- | phpBB/phpbb/path_helper.php | 18 | ||||
| -rw-r--r-- | tests/path_helper/path_helper_test.php | 8 | 
3 files changed, 16 insertions, 16 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index d11aadacfa..169c741ecf 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2396,7 +2396,7 @@ function build_url($strip_vars = false)  {  	global $config, $user, $phpbb_path_helper; -	$page = $phpbb_path_helper->get_valid_user_page($user->page['page'], $config['enable_mod_rewrite']); +	$page = $phpbb_path_helper->get_valid_page($user->page['page'], $config['enable_mod_rewrite']);  	// Append SID  	$redirect = append_sid($page, false, false); @@ -2638,7 +2638,7 @@ function check_form_key($form_name, $timespan = false)  function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_body.html', $u_action = '')  {  	global $user, $template, $db, $request; -	global $phpbb_path_helper, $phpbb_root_path; +	global $config, $phpbb_path_helper;  	if (isset($_POST['cancel']))  	{ @@ -2701,7 +2701,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo  	// re-add sid / transform & to & for user->page (user->page is always using &)  	$use_page = ($u_action) ? $u_action : str_replace('&', '&', $user->page['page']); -	$u_action = reapply_sid($phpbb_path_helper->get_valid_user_page($use_page)); +	$u_action = reapply_sid($phpbb_path_helper->get_valid_page($use_page, $config['enable_mod_rewrite']));  	$u_action .= ((strpos($u_action, '?') === false) ? '?' : '&') . 'confirm_key=' . $confirm_key;  	$template->assign_vars(array( diff --git a/phpBB/phpbb/path_helper.php b/phpBB/phpbb/path_helper.php index 77f123bf2c..0a41efc128 100644 --- a/phpBB/phpbb/path_helper.php +++ b/phpBB/phpbb/path_helper.php @@ -447,33 +447,33 @@ class path_helper  	}  	/** -	 * Get a valid user page +	 * Get a valid page  	 * -	 * @param string $user_page The current user page +	 * @param string $page The page to verify  	 * @param bool $mod_rewrite Whether mod_rewrite is enabled, default: false  	 * -	 * @return string A valid user page based on user page and mod_rewrite +	 * @return string A valid page based on given page and mod_rewrite  	 */ -	public function get_valid_user_page($user_page, $mod_rewrite = false) +	public function get_valid_page($page, $mod_rewrite = false)  	{  		// We need to be cautious here.  		// On some situations, the redirect path is an absolute URL, sometimes a relative path  		// For a relative path, let's prefix it with $phpbb_root_path to point to the correct location,  		// else we use the URL directly. -		$url_parts = parse_url($user_page); +		$url_parts = parse_url($page);  		// URL  		if ($url_parts === false || empty($url_parts['scheme']) || empty($url_parts['host']))  		{  			// Remove 'app.php/' from the page, when rewrite is enabled -			if ($mod_rewrite && strpos($user_page, 'app.' . $this->php_ext . '/') === 0) +			if ($mod_rewrite && strpos($page, 'app.' . $this->php_ext . '/') === 0)  			{ -				$user_page = substr($user_page, strlen('app.' . $this->php_ext . '/')); +				$page = substr($page, strlen('app.' . $this->php_ext . '/'));  			} -			$user_page = $this->get_phpbb_root_path() . $user_page; +			$page = $this->get_phpbb_root_path() . $page;  		} -		return $user_page; +		return $page;  	}  } diff --git a/tests/path_helper/path_helper_test.php b/tests/path_helper/path_helper_test.php index f2c2e0b102..26cb940b54 100644 --- a/tests/path_helper/path_helper_test.php +++ b/tests/path_helper/path_helper_test.php @@ -422,7 +422,7 @@ class phpbb_path_helper_test extends phpbb_test_case  		$this->assertEquals($this->phpbb_root_path . $expected, $this->path_helper->get_web_root_path_from_ajax_referer($referer_url, $board_url));  	} -	public function data_get_valid_user_page() +	public function data_get_valid_page()  	{  		return array(  			// array( current page , mod_rewrite setting , expected output ) @@ -436,10 +436,10 @@ class phpbb_path_helper_test extends phpbb_test_case  	}  	/** -	 * @dataProvider data_get_valid_user_page +	 * @dataProvider data_get_valid_page  	 */ -	public function test_get_valid_user_page($page, $mod_rewrite, $expected) +	public function test_get_valid_page($page, $mod_rewrite, $expected)  	{ -		$this->assertEquals($this->phpbb_root_path . $expected, $this->path_helper->get_valid_user_page($page, $mod_rewrite)); +		$this->assertEquals($this->phpbb_root_path . $expected, $this->path_helper->get_valid_page($page, $mod_rewrite));  	}  }  | 
