View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0017649||phpList 3 application||Statistics||public||21-04-15 10:30||11-10-18 16:20|
|Target Version||next patch||Fixed in Version|
|Summary||0017649: Click tracking decoding urlencoded characters|
|Description||A problem with click tracking urldecoding a url, see https://forums.phplist.com/viewtopic.php?f=35&t=42323|
A literal & had been encoded as %26 but that had been decoded for the url stored in the linktrack_forward table.
As this seems such a basic problem I searched for a similar bug report but surprisingly could not find one. Maybe I am misunderstanding things but I don't understand why a url in a message needs to be urldecoded (which is done in the function parseQueryString() in lib.php).
|Tags||No tags attached.|
looking back in the logs, originally it used "parse_str", but that turned full stops into underscores, so that eg "param=220.127.116.11" was replaced with param=1_2_3_4
so, to avoid that, the parseQueryString was created. This is, in order to be able to remove certain parameters from the URL, eg PHPSESSID and uid.
In fact, this caused another issue, which is the uid one.
This problem has been reported again in the user forum https://discuss.phplist.org/t/double-equal-removed-by-phplsit/3669/5
Any chance of this being addressed, or at least a discussion of what the solution might be?
||@duncanc Thanks for raising this again; strange that it has not been reported more often. I have not noticed it in my own campaigns. Assigned.|
||A quick fix https://github.com/phpList/phplist3/pull/407 but the whole area could do with reworking and simplifying.|