From 306b461a6a8e57814367de524dfa3bd22c2f3eca Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 16 Feb 2018 12:31:39 +0000 Subject: [PATCH] Bug 20218: Fix matching of uri in tracklinks The current code matches using a regex, this breaks when the url contains special characters. We swtich it to equality check To test: 1 - Enable TrackClicks (either track or anonymous) 2 - Find the URL of a biblio in the OPAC 3 - Paste this into the 856$u of another record (or use any url containing a '?' or other characters) 4 - View the record in the opac 5 - Click the URL 6 - 404 Error! 7 - Apply patch 8 - Try again 9 - Success! Signed-off-by: Claire Gravely Signed-off-by: Katrin Fischer Signed-off-by: Jonathan Druart Signed-off-by: Nick Clemens --- opac/tracklinks.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opac/tracklinks.pl b/opac/tracklinks.pl index 48076cf860..b5743fe699 100755 --- a/opac/tracklinks.pl +++ b/opac/tracklinks.pl @@ -57,7 +57,7 @@ if ($uri) { my $record = C4::Biblio::GetMarcBiblio({ biblionumber => $biblionumber }); my $marc_urls = C4::Biblio::GetMarcUrls($record, C4::Context->preference('marcflavour')); - if ( grep { /^$uri$/ } map { $_->{MARCURL} } @$marc_urls ) { + if ( grep { $_ eq $uri } map { $_->{MARCURL} } @$marc_urls ) { $tracker->trackclick( { uri => $uri, -- 2.39.5