Gå til innhold

Få linker til å automatisk besøke en tellerside


Anbefalte innlegg

Skrevet

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.

Videoannonse
Annonse
Skrevet

Du kan bruke AJAX til å sende inn hvilken link sluttbrukeren klikker på. Virker kun for dem med JS aktivert.

Skrevet

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;

Skrevet (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 av JohndoeMAKT

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...