Trackning av referrals med PHP och MySQL

Vi skall nu lära oss att tracka referrals, denna guide tillhör två sektioner, php samt mysql.

Innan vi sätter igång å skriver databasen för våra referrals så vill vi se till att vi kan ta ut maximalt med statistik ur den information vi sparar.
Vi väljer därför att spara varje referral med unikt id och informationen: besökarens ip, user agent, referer, tidpunkt.
Vi skapar MySQL tabellen med följande kod:

CREATE TABLE referrals (
  • ID INT(155) UNSIGNED AUTO_INCREMENT,
    referer VARCHAR(155),
    tidpunkt INT(155) UNSIGNED,
    ip VARCHAR(155),
    agent VARCHAR(155),
    PRIMARY KEY(ID)
    )
För att lägga in ett referral senare använder vi alltså:

INSERT INTO referrals(referer, tidpunkt, ip, agent)
VALUES('sida', 'tid', 'ip','agent')"

PHP trackningen

Nu går vi vidare till själva trackningen i php, först och främst hur man tar ut referer ur http requestet.
I PHP sparas request informationen i array variabeln $_SERVER, och vad vi är intresserade av är alltså referern som finns i $_SERVER['HTTP_REFERER'].
Om besökaren kommit till din sida genom favoriter eller type-ins så är variabeln Null, vi skriver en if-sats som kontrollerar detta samt sparar ev. referern i variabeln $referer.

<?php
if($_SERVER['HTTP_REFERER']!=""){
$referer=$_SERVER['HTTP_REFERER'];
}
?>
Nu vill vi också ha tiden som fås med funktionen time(), ip som fås med $_SERVER['REMOTE_ADDR'], agent som fås med $_SERVER['HTTP_USER_AGENT'].
Koden läggs till inom ovan if-sats '{' och '}' tecken:

<?php
if($_SERVER['HTTP_REFERER']!=""){
$referer=$_SERVER['HTTP_REFERER'];
$tidpunk=time();
$ip=$_SERVER['REMOTE_ADDR'];
$agent=$_SERVER['HTTP_USER_AGENT'];
}
?>
Sådär, nu saknar vi bara delen där vi sparar våra värden, detta gör vi med databasklassen vi skapade i guide 3 inom PHP.

<?php
if($_SERVER['HTTP_REFERER']!=""){
$referer=$_SERVER['HTTP_REFERER'];
$tidpunkt=time();
$ip=$_SERVER['REMOTE_ADDR'];
$agent=$_SERVER['HTTP_USER_AGENT'];
require("MySQL.php");
$db = new MySQL();
$db->anslut();
$db->fraga("INSERT INTO referrals(referer, tidpunkt, ip, agent)
VALUES('$referer', '$tidpunkt', '$ip','$agent')"); } ?>
Trackningen av referrals är nu komplett! Lätt och smidigt och kräver ingen ?id parameter i URL:en!
Vi kommer senare gå igenom framställningen av den statistik som samlats, en enkel MySQL fråga för att se vilka refererande siter som ger flest besökare är t.ex. denna:

SELECT DISTINCT referer, count(*) as antal FROM referrals GROUP BY referer ORDER BY antal DESC LIMIT X

X - skall sättas till det antal rader du vill ha, X=25 ger alltså dom 25 sidorna som refererat din sida flest gånger.

Se fler PHP guider & MySQL guider


Externa resurser:

Webintro.se erbjuder avancerade statistik skript



kommenteraKommentarer    Antal 0    Medelpoäng 0/10

Bli medlem för att kunna skriva kommentarer!
Logga in om du redan är medlem.


Copyright © 2005 webbdesign.info    Cookies    Gratis statistik till hemsida    sitemap Webbdesign sitemap icon
Använd gärna våra RSS feeds:

Artikel Feed
[XML]
Forum Feed
[XML]

Svenska webhosts:
Svenska Webhotell

Använd gärna denna länk för att länka till oss:

Ny översättning:
Swedish affiliate programs

Är du medlem och vill synas här?
Hör av dig i vårt forum