aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCesar G <prototech91@gmail.com>2014-04-15 13:13:37 -0700
committerCesar G <prototech91@gmail.com>2014-04-22 15:21:02 -0700
commite287eea2c6c1530c843ca57d75c35f0e5062507d (patch)
tree6af585312b2f92922e2500928e3aa631d98d75d8
parent9e605b1338821b5866102c527264304e91d8240f (diff)
downloadforums-e287eea2c6c1530c843ca57d75c35f0e5062507d.tar
forums-e287eea2c6c1530c843ca57d75c35f0e5062507d.tar.gz
forums-e287eea2c6c1530c843ca57d75c35f0e5062507d.tar.bz2
forums-e287eea2c6c1530c843ca57d75c35f0e5062507d.tar.xz
forums-e287eea2c6c1530c843ca57d75c35f0e5062507d.zip
[ticket/11508] Allow equal sign in parameter value.
PHPBB3-11508
-rw-r--r--phpBB/phpbb/path_helper.php10
-rw-r--r--tests/path_helper/path_helper_test.php15
2 files changed, 21 insertions, 4 deletions
diff --git a/phpBB/phpbb/path_helper.php b/phpBB/phpbb/path_helper.php
index a9b520be15..f92c2b72b2 100644
--- a/phpBB/phpbb/path_helper.php
+++ b/phpBB/phpbb/path_helper.php
@@ -254,16 +254,18 @@ class path_helper
foreach ($args as $argument)
{
- $arguments = explode('=', $argument);
- $key = $arguments[0];
- unset($arguments[0]);
+ if (empty($argument))
+ {
+ continue;
+ }
+ list($key, $value) = explode('=', $argument, 2);
if ($key === '')
{
continue;
}
- $params[$key] = $arguments[1];
+ $params[$key] = $value;
}
}
else
diff --git a/tests/path_helper/path_helper_test.php b/tests/path_helper/path_helper_test.php
index e77ad6d343..724f26956c 100644
--- a/tests/path_helper/path_helper_test.php
+++ b/tests/path_helper/path_helper_test.php
@@ -226,6 +226,21 @@ class phpbb_path_helper_test extends phpbb_test_case
true,
array('base' => 'https://phpbb.com/community/viewtopic.php', 'params' => array('t' => '5', 'f' => '6')),
),
+ array(
+ 'test.php?topic=post=5&amp;f=3',
+ true,
+ array('base' => 'test.php', 'params' => array('topic' => 'post=5', 'f' => '3')),
+ ),
+ array(
+ 'mcp.php?&amp;t=4&amp;f=3',
+ true,
+ array('base' => 'mcp.php', 'params' => array('t' => '4', 'f' => '3')),
+ ),
+ array(
+ 'mcp.php?=4&amp;f=3',
+ true,
+ array('base' => 'mcp.php', 'params' => array('f' => '3')),
+ ),
);
}