Besöksstatistik som inte kräver mycket
vad ska det vara? bara räkning eller info om webläsare osv.?
Helst så mycket info som möjligt utan bekostnad på hastighet.
Men de grundläggande funktionerna jag söker är antal unika, träffar, webbläsare, land, referens.
Ett tips är att använda ett program/göra ett program som baserar sin statistik på webbserverns loggfiler.
Jag gjorde detta scriptet för att vara så vänligt som möjligt för databasen, om man ska spara allting för alltid så kan det bli väldigt mycket.
Detta scriptet räknar unika, hits och pageviews. Du kan kolla vilken sida besökaren har kommit från OM den är från samma dygn. Scriptet listar alla IP nummer, när det sen är en ny dag, räknar den ut hur många hits och hur många unika besökare det var för gårdagen, den tar då bort alla raderna med IP nummer och lägger in det i en rad istället, (år, månad, dag, unika, hits). Detta medför att du inte får en enormt stor databas med 1 rad / användare, vilket kan bli ganska mycket om du har en välbesökt sida. Jag hoppas att du kan räkna ut hur databasen ska vara uppbyggd själv.
<?php
$page = "index";
$year = date("Y");
$month = date("m");
$day = date("d");
$hour = date("h");
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_REFERER'])) {
$rf = $_SERVER['HTTP_REFERER'];
} else {
$rf = "none";
}
// Gårdagens år, månad och dag
$yesterday_year = date('Y', strtotime('-1 day'));
$yesterday_month = date('m', strtotime('-1 day'));
$yesterday_day = date('d', strtotime('-1 day'));
// Unika besökare igår
$query = "SELECT * FROM unika WHERE year='$yesterday_year' AND month='$yesterday_month' AND day='$yesterday_day'";
$result = mysql_query($query);
$unika_yesterday = mysql_num_rows($result);
// Unika besökare idag
$query = "SELECT * FROM unika WHERE year='$year' AND month='$month' AND day='$day'";
$result = mysql_query($query);
$unika_today = mysql_num_rows($result);
// Totalt antal hits
$query = "SELECT hits FROM hits WHERE counter='total'";
$res = MySQL_query($query);
$total_hits = @mysql_result($res, 0);
// Hämtar vad hits stod på när gårdagen började
$query = "SELECT hits FROM total_hits WHERE year='$yesterday_year' AND month='$yesterday_month' AND day='$yesterday_day'";
$res = MySQL_query($query);
$total_hits_yesterday = @mysql_result($res, 0);
// Räknar ut gårdagens hits
$hits_yesterday = $total_hits-$total_hits_yesterday;
// BÖRJAR RÄKNA
if($unika_today == "0") {
// Skriver in gårdagens info i databasen
$insert = "INSERT INTO stats (year,month,day,unika,hits)
VALUES ('$yesterday_year','$yesterday_month','$yesterday_day','$unika_yesterday','$hits_yesterday')";
mysql_query($insert) or die ("1.Could not add data to the table");
if($unika_yesterday != "0") {
// Tar bort gårdagens rader
$sql = "DELETE FROM unika WHERE year='$yesterday_year' AND month='$yesterday_month' AND day='$yesterday_day'";
mysql_query($sql) or die(mysql_error());
}
// Skriver nuvarande hits i total_hits databasen
$insert = "INSERT INTO total_hits (year,month,day,hits)
VALUES ('$year','$month','$day','$total_hits')";
mysql_query($insert) or die ("2.Could not add data to the table");
// Lägger till en unik besökare i databasen
$query = "SELECT * FROM unika WHERE ip='$ip' AND year='$year' AND month='$month' AND day='$day' LIMIT 1";
$r = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($r) == 0) {
$insert = "INSERT INTO unika (year,month,day,ip,refferal)
VALUES ('$year','$month','$day','$ip','$rf')";
mysql_query($insert) or die ("3.Could not add data to the table");
}
// Sidvisningar
$query = "UPDATE pageviews SET views=views+1 WHERE counter='$page'";
mysql_query($query) or die ("4.Could not add data to the table");
// RÄKNAR HITS
if(isset($_SESSION[visited])) { } else {
$_SESSION[visited] = "1";
$query = "UPDATE hits SET hits=hits+1 WHERE counter='$page'";
mysql_query($query) or die ("9.Could not add data to the table");
$query = "UPDATE hits SET hits=hits+1 WHERE counter='total'";
mysql_query($query) or die ("5.Could not add data to the table");
}
} else {
// Lägger till en unik besökare i databasen
$query = "SELECT * FROM unika WHERE ip='$ip' AND year='$year' AND month='$month' AND day='$day' LIMIT 1";
$r = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($r) == 0) {
$insert = "INSERT INTO unika (year,month,day,ip,refferal)
VALUES ('$year','$month','$day','$ip','$rf')";
mysql_query($insert) or die ("7.Could not add data to the table");
}
// Sidvisningar
$query = "UPDATE pageviews SET views=views+1 WHERE counter='$page'";
mysql_query($query) or die ("4.Could not add data to the table");
// RÄKNAR HITS
if(!$_SISSION[visited] == '0') {
echo "en hit";
$_SESSION[visited] = "1";
$query = "UPDATE hits SET hits=hits+1 WHERE counter='$page'";
mysql_query($query) or die ("9.Could not add data to the table");
$query = "UPDATE hits SET hits=hits+1 WHERE counter='total'";
mysql_query($query) or die ("5.Could not add data to the table");
}
// RÄKNAR HITS
if(isset($_SESSION[visited])) { } else {
$_SESSION[visited] = "1";
$query = "UPDATE hits SET hits=hits+1 WHERE counter='$page'";
mysql_query($query) or die ("9.Could not add data to the table");
$query = "UPDATE hits SET hits=hits+1 WHERE counter='total'";
mysql_query($query) or die ("5.Could not add data to the table");
}
}
?>
Ursprungligen inskrivet av Hoomie
Jag gjorde detta scriptet för att vara så vänligt som möjligt för databasen, om man ska spara allting för alltid så kan det bli väldigt mycket.
Detta scriptet räknar unika, hits och pageviews. Du kan kolla vilken sida besökaren har kommit från OM den är från samma dygn. Scriptet listar alla IP nummer, när det sen är en ny dag, räknar den ut hur många hits och hur många unika besökare det var för gårdagen, den tar då bort alla raderna med IP nummer och lägger in det i en rad istället, (år, månad, dag, unika, hits). Detta medför att du inte får en enormt stor databas med 1 rad / användare, vilket kan bli ganska mycket om du har en välbesökt sida. Jag hoppas att du kan räkna ut hur databasen ska vara uppbyggd själv.
massa kod
Jodå, kan en del php/mysql. Du vill inte dela med dig av koden som skriver ut statistiken också?
Själv använder jag bbclone, tycker det fungerar klockrent
http://ibisaeg.mine.nu/bbclone/
Ursprungligen inskrivet av Mathiasss
Jodå, kan en del php/mysql. Du vill inte dela med dig av koden som skriver ut statistiken också?
Jovisst:
// Dagens år,månad och dag
$this_year = date("Y");
$this_month = date("m");
$this_day = date("d");
// Gårdagens år, månad och dag
$yesterday_year = date('Y', strtotime('-1 day'));
$yesterday_month = date('m', strtotime('-1 day'));
$yesterday_day = date('d', strtotime('-1 day'));
// Förra månaden
$mm = $this_month;
if($mm == '01') { $mmm1 = '12';
} elseif($mm == '02') { $mmm1 = '01';
} elseif($mm == '03') { $mmm1 = '02';
} elseif($mm == '04') { $mmm1 = '03';
} elseif($mm == '05') { $mmm1 = '04';
} elseif($mm == '06') { $mmm1 = '05';
} elseif($mm == '07') { $mmm1 = '06';
} elseif($mm == '08') { $mmm1 = '07';
} elseif($mm == '09') { $mmm1 = '08';
} elseif($mm == '10') { $mmm1 = '09';
} elseif($mm == '11') { $mmm1 = '10';
} elseif($mm == '12') { $mmm1 = '11'; }
echo "<font face='verdana' size='2'>";
// Unika besökare hittils idag
$query = "SELECT * FROM unika";
$result = mysql_query($query);
$unika_idag = mysql_num_rows($result);
// Unika besökare totalt
$sql = "SELECT SUM(unika) AS unika_besokare FROM stats";
$res = mysql_query($sql) or die(mysql_error());
$totalt_innan = mysql_result($res, 0, 'unika_besokare');
$totalt = $totalt_innan+$unika_idag;
echo "Unika besökare totalt: <b>$totalt</b><br>";
// Totalt antal hits
$query = "SELECT hits FROM hits WHERE counter='total'";
$result = MySQL_query($query);
$count = mysql_result($result, 0);
echo "Totalt antal hits: <b>$count</b><p><p>";
echo "Unika besökare hittills idag: <b>$unika_idag</b><br>";
// Unika besökare igår
$sql = "SELECT SUM(unika) AS unika_besokare FROM stats WHERE year='$this_year' AND month='$this_month' AND day='$yesterday_day'";
$res = mysql_query($sql) or die(mysql_error());
$count = mysql_result($res, 0, 'unika_besokare');
echo "Unika besökare igår: <b>$count</b><p>";
// Unika besökare i år
$sql = "SELECT SUM(unika) AS unika_besokare FROM stats WHERE year='$this_year'";
$res = mysql_query($sql) or die(mysql_error());
$count = mysql_result($res, 0, 'unika_besokare');
$unika_iar = $count+$unika_idag;
echo "Unika besökare hittills $this_year: <b>$unika_iar</b><p>";
// Unika besökare denna månad
$sql = "SELECT SUM(unika) AS unika_besokare FROM stats WHERE year='$this_year' AND month='$this_month'";
$res = mysql_query($sql) or die(mysql_error());
$count = mysql_result($res, 0, 'unika_besokare');
$totalt = $count+$unika_idag;
echo "Unika besökare denna månad: <b>$totalt</b><br>";
// Unika besökare förra månaden
$sql = "SELECT SUM(unika) AS unika_besokare FROM stats WHERE year='$this_year' AND month='$mmm1'";
$res = mysql_query($sql) or die(mysql_error());
$count = mysql_result($res, 0, 'unika_besokare');
echo "Unika besökare förra månaden: <b>$count</b><br>";
- Idag Blocket inför BankID-verifiering för alla användare 29
- Idag Snabbkoll: Är du fortfarande sugen på smarta hemmet-prylar? 61
- Igår Malware slog ut 600 000 routrar – gick inte att återställa 12
- Igår Undersökning: Stabilt internet viktigare än barnomsorg 21
- 1 / 6 Krönika: När datorn endast blivit ett jobbverktyg 33
- Begagnad gamingdator 12000 kr3
- Vart köper jag kabel för fler SATA-anslutningar?2
- AMD avtäcker Ryzen 9000 för stationära datorer – släpps i juli73
- Blocket inför BankID-verifiering för alla användare29
- Elbilar - Tråden för intresserade23329
- Fps droppar när jag spelar Fortnite.26
- Snabbkoll: Är du fortfarande sugen på smarta hemmet-prylar?61
- Köpa ny speldator2
- Sony 65" Bravia X85L FALD , kopplad till pc, svart skärm på 120 hz.2
- Portabel AC inför sommaren [Samlingstråd]5150
- Säljes Samsung SSD870 EVO 2TB / 1TB 870 EVO Oöppnade
- Säljes Polk Audio Signature Elite ES50 + Signature Elite ES30
- Säljes HP Pavilion TG01 (inget grafikkort) - bud/priskoll
- Säljes Rensning, Mus, Stream deck, DDR5, headsett belysning.
- Säljes Geforce 3060 Ti
- Säljes Intel NUC i7 6770HQ Skull Canyon
- Säljes Philips 48" 48OLED907/12
- Köpes Grafikkort+ m.2 runt Göteborg med omnejd! Max 3000:-
- Säljes Custom tangentbords rensning!
- Säljes PowerColor RX 7800 XT 16GB Red Devil Limited Edition
- Säkerhetsforskare varnar för Microsoft Recall8
- Blocket inför BankID-verifiering för alla användare29
- Snabbkoll: Är du fortfarande sugen på smarta hemmet-prylar?61
- Fler kärnor i Intels nya processorer för arbetsstationer8
- AMD släpper AI-processorer för bärbara datorer23
- AMD avtäcker Ryzen 9000 för stationära datorer – släpps i juli73
- Malware slog ut 600 000 routrar – gick inte att återställa12
- Nvidia bygger AI-spelassistent som körs på grafikkortet30
- Förbättrad Asus ROG Ally med dubbelt batteri39
- Undersökning: Stabilt internet viktigare än barnomsorg21
Externa nyheter
Spelnyheter från FZ
- The Rogue Prince of Persia idag
- Youtube-nytt! Astro Bot-trailer får 99 % likes. Concord? 10 % idag
- Rekordmånga ändringar i Starfield-koden – det spekuleras i stora nyheter idag
- GTA 6 på pc? Take-Two-vd:n svarar med massa ord (som säger ingenting) idag
- Nvidia släpper G-Assist – en AI-driven spelassistent idag