mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-06 15:45:34 +02:00
[ticket/11850] Fix $user->page on pages through the controller
PHPBB3-11850
This commit is contained in:
parent
6ba2fb6d62
commit
f4317bc864
@ -40,13 +40,13 @@ class phpbb_session
|
|||||||
*/
|
*/
|
||||||
static function extract_current_page($root_path)
|
static function extract_current_page($root_path)
|
||||||
{
|
{
|
||||||
global $request;
|
global $request, $symfony_request, $phpbb_filesystem;
|
||||||
|
|
||||||
$page_array = array();
|
$page_array = array();
|
||||||
|
|
||||||
// First of all, get the request uri...
|
// First of all, get the request uri...
|
||||||
$script_name = htmlspecialchars_decode($request->server('PHP_SELF'));
|
$script_name = $symfony_request->getScriptName();
|
||||||
$args = explode('&', htmlspecialchars_decode($request->server('QUERY_STRING')));
|
$args = explode('&', $symfony_request->getQueryString());
|
||||||
|
|
||||||
// If we are unable to get the script name we use REQUEST_URI as a failover and note it within the page array for easier support...
|
// If we are unable to get the script name we use REQUEST_URI as a failover and note it within the page array for easier support...
|
||||||
if (!$script_name)
|
if (!$script_name)
|
||||||
@ -103,10 +103,19 @@ class phpbb_session
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Current page from phpBB root (for example: adm/index.php?i=10&b=2)
|
// Current page from phpBB root (for example: adm/index.php?i=10&b=2)
|
||||||
$page = (($page_dir) ? $page_dir . '/' : '') . $page_name . (($query_string) ? "?$query_string" : '');
|
$symfony_request_path = $phpbb_filesystem->clean_path($symfony_request->getPathInfo());
|
||||||
|
$page = (($page_dir) ? $page_dir . '/' : '') . $page_name;
|
||||||
|
if ($symfony_request_path !== '/')
|
||||||
|
{
|
||||||
|
$page .= $symfony_request_path;
|
||||||
|
}
|
||||||
|
if ($query_string)
|
||||||
|
{
|
||||||
|
$page .= '?' . $query_string;
|
||||||
|
}
|
||||||
|
|
||||||
// The script path from the webroot to the current directory (for example: /phpBB3/adm/) : always prefixed with / and ends in /
|
// The script path from the webroot to the current directory (for example: /phpBB3/adm/) : always prefixed with / and ends in /
|
||||||
$script_path = trim(str_replace('\\', '/', dirname($script_name)));
|
$script_path = $symfony_request->getBasePath();
|
||||||
|
|
||||||
// The script path from the webroot to the phpBB root (for example: /phpBB3/)
|
// The script path from the webroot to the phpBB root (for example: /phpBB3/)
|
||||||
$script_dirs = explode('/', $script_path);
|
$script_dirs = explode('/', $script_path);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user