mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-28 00:39:19 +01:00
"make sure to not double encode &"
This commit is contained in:
parent
5a47d445e8
commit
1caead5ea9
@ -1023,7 +1023,8 @@ class egw_session
|
|||||||
* Please note, the values of the query get url encoded!
|
* Please note, the values of the query get url encoded!
|
||||||
*
|
*
|
||||||
* @param string $url a url relative to the egroupware install root, it can contain a query too
|
* @param string $url a url relative to the egroupware install root, it can contain a query too
|
||||||
* @param array/string $extravars query string arguements as string or array (prefered)
|
* @param array|string $extravars query string arguements as string or array (prefered)
|
||||||
|
* if string is used ambersands in vars have to be already urlencoded as '%26', function ensures they get NOT double encoded
|
||||||
* @return string generated url
|
* @return string generated url
|
||||||
*/
|
*/
|
||||||
public static function link($url, $extravars = '')
|
public static function link($url, $extravars = '')
|
||||||
@ -1073,7 +1074,7 @@ class egw_session
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check if the url already contains a query and ensure that vars is an array and all strings are in extravars
|
// check if the url already contains a query and ensure that vars is an array and all strings are in extravars
|
||||||
list($url,$othervars) = explode('?',$url);
|
list($url,$othervars) = explode('?',$url,2);
|
||||||
if ($extravars && is_array($extravars))
|
if ($extravars && is_array($extravars))
|
||||||
{
|
{
|
||||||
$vars += $extravars;
|
$vars += $extravars;
|
||||||
@ -1090,6 +1091,7 @@ class egw_session
|
|||||||
foreach(explode('&',$extravars) as $expr)
|
foreach(explode('&',$extravars) as $expr)
|
||||||
{
|
{
|
||||||
list($var,$val) = explode('=', $expr,2);
|
list($var,$val) = explode('=', $expr,2);
|
||||||
|
if (strpos($val,'%26') != false) $val = str_replace('%26','&',$val); // make sure to not double encode &
|
||||||
if (substr($var,-2) == '[]')
|
if (substr($var,-2) == '[]')
|
||||||
{
|
{
|
||||||
$vars[substr($var,0,-2)][] = $val;
|
$vars[substr($var,0,-2)][] = $val;
|
||||||
|
Loading…
Reference in New Issue
Block a user