mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-06 08:47:45 +02:00
Adjust build_url() to not prepend $phpbb_root_path if path returned from redirect() is an URL. This fixes redirect issues with some installations and bridges. (Bug #47535)
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9907 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
@@ -2284,7 +2284,7 @@ function redirect($url, $return = false, $disable_cd_check = false)
|
||||
$url = str_replace('&', '&', $url);
|
||||
|
||||
// Determine which type of redirect we need to handle...
|
||||
$url_parts = parse_url($url);
|
||||
$url_parts = @parse_url($url);
|
||||
|
||||
if ($url_parts === false)
|
||||
{
|
||||
@@ -2497,6 +2497,18 @@ function build_url($strip_vars = false)
|
||||
$redirect .= ($query) ? '?' . $query : '';
|
||||
}
|
||||
|
||||
// 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($redirect);
|
||||
|
||||
// URL
|
||||
if ($url_parts !== false && !empty($url_parts['scheme']) && !empty($url_parts['host']))
|
||||
{
|
||||
return str_replace('&', '&', $redirect);
|
||||
}
|
||||
|
||||
return $phpbb_root_path . str_replace('&', '&', $redirect);
|
||||
}
|
||||
|
||||
@@ -3596,7 +3608,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
|
||||
|
||||
exit_handler();
|
||||
break;
|
||||
|
||||
|
||||
// PHP4 comptibility
|
||||
case E_DEPRECATED:
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user