phplist

NOTE:: Before reporting an issue, make sure you are running the latest version, currently 3.3.1


View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0016584phplist applicationClick Trackingpublic03-04-12 21:0713-06-13 22:27
Reporterbzdzb 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
Platformx86_64OSUbuntu LinuxOS Version10.04
Product Version2.10.17 
Target Version2.11.11Fixed in Version2.11.11 
Summary0016584: Tracking replacing period in URL param name with underscore
DescriptionThe click tracking system is replacing a period (.) with an underscore (_) in my url parameter. This seems to be the same or similar problem as referenced here: http://forums.phplist.com/viewtopic.php?f=24&t=35769&p=84356 [^]

I.e.:
http://www.example.com/path/example.html?WT.mc_id=xyz [^]
is getting turned into
http://www.example.com/path/example.html?WT_mc_id=xyz [^]

I tested print_r(parse_url("http://www.example.com/path/example.html?WT.mc_id=xyz" [^])) and it properly generates the following.
Array ( [scheme] => http [host] => www.example.com [path] => /path/example.html [query] => WT.mc_id=xyz )

There seems to be a bug in the URL parsing code for the click tracking, but I haven't been able to track it down yet.
Steps To ReproduceSend email with click tracking enabled that contains a link with a '.' character in the URL argument name.
TagsNo tags attached.
Attached Filespatch file icon parse_str_punctuation_issue.patch [^] (538 bytes) 04-04-12 17:37 [Show Content]

- Relationships Relation Graph ] Dependency Graph ]
related to 0008980resolveduser1822 Link Conversion for Click Tracking 
has duplicate 0015239resolvedmichiel Links are not getting re-written correctly (mangled actually). 

-  Notes
(0051539)
bzdzb (reporter)
03-04-12 22:55

Problem lies with parse_str incorrectly converting certain characters to underscores(_). Patch pending.
(0051540)
michiel (manager)
04-04-12 12:22

yes, the problem is in PHP, which makes it tricky. When the URL is parsed into it's components, PHP for security, doesn't allow a "." in the variable element and makes it an underscore. So, the only way is to write our own parse_url function that doesn't do that.
(0051541)
bzdzb (reporter)
04-04-12 17:38

I noticed that in the multi-argument case parse_str had already been replaced by an appropriate replacement. The issues was only in the else case where there is only one parameter in the query string. Updated, tested and submitted patch.
(0051793)
rk00bugreport (reporter)
26-10-12 20:57

The patch seems to break the uid parameter in unsubscribe, preferences, send-to-friend links in the footer.


Copyright © 2000 - 2017 MantisBT Team
Powered by Mantis Bugtracker