dico Skrevet 14. april 2009 Del Skrevet 14. april 2009 Jeg begynte å tenke på at det kunne ha vært gøy å se hvilke eksterne lenker besøkende bruker på siden min. Et PHP skript for registrering og telling skal jeg nok klare å rote sammen, men største problemet blir kanskje å lenke hyperlenkene til det skriptet. La oss si jeg har 500 eksterne lenker på siden min. Finnes det noen mulighet for at jeg slipper å endre alle de til f.eks.: "?side=count&url=www.eksternlenke.com" ? Eventuelt en kode i toppen av indexfilen eller en .htaccess kommando som sender de via count-filen automatisk? Dette sparer meg også for ekstra jobb når jeg hyperlenker i fremtiden. Lenke til kommentar
OIS Skrevet 14. april 2009 Del Skrevet 14. april 2009 Du kan bruke AJAX til å sende inn hvilken link sluttbrukeren klikker på. Virker kun for dem med JS aktivert. Lenke til kommentar
Martin A. Skrevet 14. april 2009 Del Skrevet 14. april 2009 Bør være mulig med output bufring (om du ikke har en egen prosedyre for output), og en preg_replace() på alle lenker. Regex er ikke min sterke side, så dette er bare en idé til en løsning. <?php ob_start() // Masse echo/print, etc $output = ob_get_contents(); ob_end_clean(); $output = preg_replace( /* Regex her */, 'index.php?side=count&url=\', $output ); echo $output; Lenke til kommentar
AlecTBM Skrevet 15. april 2009 Del Skrevet 15. april 2009 Er dette statiske linker eller linker som kommer fra feks en database? Lenke til kommentar
JohndoeMAKT Skrevet 15. april 2009 Del Skrevet 15. april 2009 (endret) Det er ikke noe problem. Du bare legger inn litt javascript i slutten av dokumentet som sier noe som dette: <script type="text/javascript"> function transformLink(event) { var element = (typeof event.target === 'object' ? event.target : event.srcElement); if (window.location.hostname !== element.href.split('/')[2]) { element.href = '?side=count&url=' + encodeURIComponent(element.href); } } var elements = document.getElementsByTagName('a'); for (var i = 0, iMax = elements.length; i < iMax; i++) { if (elements[i].addEventListener) { elements[i].addEventListener('click', transformLink, false); } else if (elements[i].attachEvent) { elements[i].attachEvent('onclick', transformLink); } } </script> (Ja, søvnproblemer. ) Endret 15. april 2009 av JohndoeMAKT Lenke til kommentar
AlecTBM Skrevet 16. april 2009 Del Skrevet 16. april 2009 Vil ikke den der ta interne linker også? altså isteden for index.php?side=hovedside så kommer du til ?side=count&url=index.php?side=hovedside Lenke til kommentar
Jonas Skrevet 16. april 2009 Del Skrevet 16. april 2009 Koden sjekker presist om det gjelder en intern lenke. if (window.location.hostname !== element.href.split('/')[2]) { Lenke til kommentar
AlecTBM Skrevet 16. april 2009 Del Skrevet 16. april 2009 aah, er ikke så flink i JS enda Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå