1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-07 08:05:25 +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:
Meik Sievertsen 2009-08-01 13:52:37 +00:00
parent 7940674962
commit 73a6f7263b
2 changed files with 15 additions and 2 deletions

View File

@ -185,6 +185,7 @@
<li>[Fix] Correctly log action when users request to join a group (Bug #37585 - Patch by nickvergessen)</li>
<li>[Fix] Do not try to create thumbnails for images we cannot open properly. (Bug #48695)</li>
<li>[Fix] Apply locale-independent basename() to attachment filenames. New function added: utf8_basename(). (Bug #43335 - Patch by ocean=Yohsuke)</li>
<li>[Fix] 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)</li>
<li>[Change] Change the data format of the default file ACM to be more secure from tampering and have better performance.</li>
<li>[Change] Add index on log_time to the log table to prevent slowdown on boards with many log entries. (Bug #44665 - Patch by bantu)</li>
<li>[Change] Template engine now permits to a limited extent variable includes.</li>

View File

@ -2284,7 +2284,7 @@ function redirect($url, $return = false, $disable_cd_check = false)
$url = str_replace('&amp;', '&', $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('&', '&amp;', $redirect);
}
return $phpbb_root_path . str_replace('&', '&amp;', $redirect);
}
@ -3596,7 +3608,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
exit_handler();
break;
// PHP4 comptibility
case E_DEPRECATED:
return true;