aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/session.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2004-08-01 14:16:04 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2004-08-01 14:16:04 +0000
commitfdf333e7f97f8c1aca8ad7755d022e5d5c1809cd (patch)
treece8aa7d9bd91ff6d14924837592a2bc5f6fbbe68 /phpBB/includes/session.php
parent56efd0b5d2a8456f4465379b0f8026cddb2dd1ee (diff)
downloadforums-fdf333e7f97f8c1aca8ad7755d022e5d5c1809cd.tar
forums-fdf333e7f97f8c1aca8ad7755d022e5d5c1809cd.tar.gz
forums-fdf333e7f97f8c1aca8ad7755d022e5d5c1809cd.tar.bz2
forums-fdf333e7f97f8c1aca8ad7755d022e5d5c1809cd.tar.xz
forums-fdf333e7f97f8c1aca8ad7755d022e5d5c1809cd.zip
replacing two preg_replace statements with one preg_match_all statement...
git-svn-id: file:///svn/phpbb/trunk@4941 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/session.php')
-rw-r--r--phpBB/includes/session.php18
1 files changed, 14 insertions, 4 deletions
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index 9c086a639e..3d77fcb8fe 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -19,6 +19,7 @@ class session
var $ip = '';
var $page = '';
var $cur_page = '';
+ var $current_page_filename = '';
var $load;
// Called at each page start ... checks for, updates and/or creates a session
@@ -30,12 +31,21 @@ class session
$this->browser = (!empty($_SERVER['HTTP_USER_AGENT'])) ? $_SERVER['HTTP_USER_AGENT'] : $_ENV['HTTP_USER_AGENT'];
$this->page = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : $_ENV['REQUEST_URI'];
- // Generate Valid URL
- $this->cur_page = preg_replace('#^.*?([a-z]+?)\.' . $phpEx . '\?sid=[a-z0-9]*?(&.*)?$#i', '\1.' . $phpEx . '?\2', str_replace('&amp;', '&', htmlspecialchars($this->page)));
-
- $this->page = preg_replace('#^.*?([a-z]+?)\.' . $phpEx . '\?sid=[a-z0-9]*?(&.*)?$#i', '\1\2', $this->page);
+ $split_page = array();
+ preg_match_all('#^.*?([a-z]+?)\.' . $phpEx . '\?sid=[a-z0-9]*?(&.*)?$#i', $this->page, $split_page, PREG_SET_ORDER);
+
+ // Page for session_page value
+ $this->page = $split_page[0][1] . ((isset($split_page[0][2])) ? $split_page[0][2] : '');
$this->page .= (isset($_POST['f'])) ? 'f=' . intval($_POST['f']) : '';
+ // Current page correctly formatted for (login) redirects
+ $this->cur_page = str_replace('&amp;', '&', htmlspecialchars($split_page[0][1] . '.' . $phpEx . ((isset($split_page[0][2])) ? '?' . $split_page[0][2] : '')));
+
+ // Current page filename for use in template (index, viewtopic, viewforum...)
+ $this->current_page_filename = $split_page[0][1];
+
+ unset($split_page);
+
if (isset($_COOKIE[$config['cookie_name'] . '_sid']) || isset($_COOKIE[$config['cookie_name'] . '_data']))
{
$sessiondata = (!empty($_COOKIE[$config['cookie_name'] . '_data'])) ? unserialize(stripslashes($_COOKIE[$config['cookie_name'] . '_data'])) : array();