1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-08 07:36:32 +02:00

URL assembler (url)encoding issues

This commit is contained in:
secretr
2012-10-21 15:59:45 +00:00
parent d99103dbd9
commit e649d21154

View File

@@ -2062,7 +2062,7 @@ class eRouter
$ampersand = !$encode && $options['amp'] == '&' ? '&' : $options['amp']; $ampersand = !$encode && $options['amp'] == '&' ? '&' : $options['amp'];
foreach ($params as $k => $v) foreach ($params as $k => $v)
{ {
if (null !== $key) $k = $key.'['.$k.']'; if (null !== $key) $k = $key.'['.rawurlencode($k).']';
if (is_array($v)) $pairs[] = $this->createPathInfo($v, $options, $k); if (is_array($v)) $pairs[] = $this->createPathInfo($v, $options, $k);
else else
@@ -2071,14 +2071,14 @@ class eRouter
{ {
if($encode) if($encode)
{ {
$k = rawurlencode($k); $k = null !== $key ? $k : rawurlencode($k);
} }
$pairs[] = $k; $pairs[] = $k;
continue; continue;
} }
if($encode) if($encode)
{ {
$k = rawurlencode($k); $k = null !== $key ? $k : rawurlencode($k);
$v = rawurlencode($v); $v = rawurlencode($v);
} }
$pairs[] = $k.$equal.$v; $pairs[] = $k.$equal.$v;
@@ -2459,12 +2459,13 @@ class eUrlRule
foreach ($this->params as $key => $value) foreach ($this->params as $key => $value)
{ {
$tr["<$key>"] = $params[$key]; // FIX - non-latin URLs proper encoded
$tr["<$key>"] = rawurlencode($params[$key]);
unset($params[$key]); unset($params[$key]);
} }
$suffix = $this->urlSuffix === null ? $manager->urlSuffix : $this->urlSuffix; $suffix = $this->urlSuffix === null ? $manager->urlSuffix : $this->urlSuffix;
$url = strtr($this->template, $tr); $url = strtr($this->template, $tr);
if (empty($params)) return $url !== '' ? $url.$suffix : $url; if (empty($params)) return $url !== '' ? $url.$suffix : $url;