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>";
- Igår Grafikprestanda i Senua's Saga: Hellblade II – ett av de tyngsta PC-spelen någonsin 44
- 19 / 5 Ghost of Tsushima kan använda DLSS och FSR 3 samtidigt 11
- 17 / 5 27 år senare – Winamp får öppen källkod 45
- 17 / 5 Grafikprestanda i Ghost of Tsushima – en välpolerad PC-version 28
- 17 / 5 Microsoft: Byt till Bing om du vill reparera din dator 39
- Hur formatera (Ubuntu)USB-minne i Ubuntu?31
- Grafikprestanda i Senua's Saga: Hellblade II – ett av de tyngsta PC-spelen någonsin44
- Vad lyssnar du på just nu?13987
- Uppgraderingspaket till sambo2
- Så ska bankerna ta hårdare tag mot bedragare67
- 4080 Aero 110° hotspot - Garanti ärende0
- RX 7900XT/XTX Owners Club865
- Stora feta metaltråden!5087
- Microsoft event med Qualcomm Snapdragon X24
- SweCyklers1543
- Säljes Acer Predator XB323QK 32" IPS 144Hz 1ms
- Köpes Köper ditt 2080Ti el liknande
- Säljes Mäktig dator 7950X, RX 7900 XTX, 64 GB, 2x2TB 990 PRO, 1300W
- Säljes Speldator från komplett säljes
- Säljes Samsung Galaxy Watch5 LTE (44mm) grafit
- Skänkes Chassidelar och skrot skänkes kanske för test bench bygge?
- Säljes Linksys Velop WIFI 6 1-pack
- Säljes Speldator - i9-9900k, 3070, 16GB
- Säljes Bose Noise Cancelling Headphones 700
- Säljes 2 detskops Hp omen (3080) (1060)
- Sonos gör hörlursdebut med Sonos Ace27
- Grafikprestanda i Senua's Saga: Hellblade II – ett av de tyngsta PC-spelen någonsin44
- Surface-tangentbord med AI-knapp kostar 5 000 kronor28
- Noctua lanserar Home – fläktlösningar för hemmet46
- Microsoft visar upp Copilot Plus PC32
- Studenter hittar sårbarhet i tvättautomater – företaget ignorerar varningar19
- Se Windows XP infekteras på minuter utan skydd45
- Detta gäller när HBO Max blir Max82
- Delning av skadlig kod via PDF-filer ökar22
- SweClockers får efterlängtade forumfunktioner40
Externa nyheter
Spelnyheter från FZ
- Kingdom Hearts till Steam, efter tre års Epic-exklusivitet igår
- Se Microsofts AI-tjänst guida (en noob vid) Minecraft-spelande igår
- Embracer säljer Switch-utvecklaren Shiver till Nintendo igår
- CoD till Game Pass innebär "förändrad" Game Pass-modell, påstås det igår
- Take-Two är "väldigt säkra" på GTA 6:s släppfönster igår