aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/session.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2013-10-10 23:39:09 +0200
committerAndreas Fischer <bantu@phpbb.com>2013-10-10 23:39:09 +0200
commit353ac33d5cea1752047779eb8c70c7ce3a64b6c8 (patch)
tree76e08c4e16c68256700506b7111c3cbb547dc877 /phpBB/phpbb/session.php
parent0228424983e35badc779923a1f0398fc3ab7c8b2 (diff)
parentb59131f558a6d0fe4c836e2658152c8698f0cd22 (diff)
downloadforums-353ac33d5cea1752047779eb8c70c7ce3a64b6c8.tar
forums-353ac33d5cea1752047779eb8c70c7ce3a64b6c8.tar.gz
forums-353ac33d5cea1752047779eb8c70c7ce3a64b6c8.tar.bz2
forums-353ac33d5cea1752047779eb8c70c7ce3a64b6c8.tar.xz
forums-353ac33d5cea1752047779eb8c70c7ce3a64b6c8.zip
Merge remote-tracking branch 'phpbb/develop' into ticket/11621
* phpbb/develop: (542 commits) [ticket/11901] Pass empty string as relative_url for non-local magic URL. [ticket/11898] Correct adm_relative_path created by installer [ticket/11898] Correct admin S_LOGIN_ACTION [ticket/11892] Fix undefined variables: to_forum_id & to_topic_id [ticket/11890] Fix untranslated string when deleting posts through MCP. [ticket/11895] Fix undefined $forum_id [ticket/10383] Update the results without the overlay popup. [ticket/10383] Make the content transitions smoother. [ticket/10383] AJAXify poll voting [ticket/11888] Update default search backend in namespaces migration [ticket/11739] Rename “Remember Me” login keys module [ticket/11893] Remove unnecessary <fieldset> causing a large font size [ticket/11894] Fix typo in "Delete post" option [ticket/11888] Use \phpbb\search\fulltext_native as search backend config [ticket/11608] Mark failed test as incomplete for mysql search backend [ticket/11608] Update search backend class names to namespaces [ticket/11608] Move markIncomplete to search backends test [ticket/11608] Rename base search test class file [ticket/11608] Remove suffix test from base class [ticket/11608] Mark postgres search not found test as incomplete ...
Diffstat (limited to 'phpBB/phpbb/session.php')
-rw-r--r--phpBB/phpbb/session.php32
1 files changed, 22 insertions, 10 deletions
diff --git a/phpBB/phpbb/session.php b/phpBB/phpbb/session.php
index dc33786666..5e4380bfc8 100644
--- a/phpBB/phpbb/session.php
+++ b/phpBB/phpbb/session.php
@@ -7,6 +7,8 @@
*
*/
+namespace phpbb;
+
/**
* @ignore
*/
@@ -19,7 +21,7 @@ if (!defined('IN_PHPBB'))
* Session class
* @package phpBB3
*/
-class phpbb_session
+class session
{
var $cookie_data = array();
var $page = array();
@@ -40,13 +42,13 @@ class phpbb_session
*/
static function extract_current_page($root_path)
{
- global $request;
+ global $request, $symfony_request, $phpbb_filesystem;
$page_array = array();
// First of all, get the request uri...
- $script_name = htmlspecialchars_decode($request->server('PHP_SELF'));
- $args = explode('&', htmlspecialchars_decode($request->server('QUERY_STRING')));
+ $script_name = $symfony_request->getScriptName();
+ $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 (!$script_name)
@@ -87,6 +89,12 @@ class phpbb_session
$page_name = (substr($script_name, -1, 1) == '/') ? '' : basename($script_name);
$page_name = urlencode(htmlspecialchars($page_name));
+ $symfony_request_path = $phpbb_filesystem->clean_path($symfony_request->getPathInfo());
+ if ($symfony_request_path !== '/')
+ {
+ $page_name .= $symfony_request_path;
+ }
+
// current directory within the phpBB root (for example: adm)
$root_dirs = explode('/', str_replace('\\', '/', phpbb_realpath($root_path)));
$page_dirs = explode('/', str_replace('\\', '/', phpbb_realpath('./')));
@@ -103,10 +111,14 @@ class phpbb_session
}
// 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" : '');
+ $page = (($page_dir) ? $page_dir . '/' : '') . $page_name;
+ 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 /
- $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/)
$script_dirs = explode('/', $script_path);
@@ -243,7 +255,7 @@ class phpbb_session
$this->forwarded_for = '';
}
- if ($request->is_set($config['cookie_name'] . '_sid', phpbb_request_interface::COOKIE) || $request->is_set($config['cookie_name'] . '_u', phpbb_request_interface::COOKIE))
+ if ($request->is_set($config['cookie_name'] . '_sid', \phpbb\request\request_interface::COOKIE) || $request->is_set($config['cookie_name'] . '_u', \phpbb\request\request_interface::COOKIE))
{
$this->cookie_data['u'] = request_var($config['cookie_name'] . '_u', 0, false, true);
$this->cookie_data['k'] = request_var($config['cookie_name'] . '_k', '', false, true);
@@ -405,9 +417,9 @@ class phpbb_session
$provider = $phpbb_container->get('auth.provider.' . $method);
- if (!($provider instanceof phpbb_auth_provider_interface))
+ if (!($provider instanceof \phpbb\auth\provider\provider_interface))
{
- throw new \RuntimeException($provider . ' must implement phpbb_auth_provider_interface');
+ throw new \RuntimeException($provider . ' must implement \phpbb\auth\provider\provider_interface');
}
$ret = $provider->validate_session($this->data);
@@ -1022,7 +1034,7 @@ class phpbb_session
{
include($phpbb_root_path . "includes/captcha/captcha_factory." . $phpEx);
}
- $captcha_factory = new phpbb_captcha_factory();
+ $captcha_factory = new \phpbb_captcha_factory();
$captcha_factory->garbage_collect($config['captcha_plugin']);
$sql = 'DELETE FROM ' . LOGIN_ATTEMPT_TABLE . '