/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Opskrift på besøgstæller med daglig optæll~
Fra : Jakob Munck


Dato : 24-02-06 11:08

Jeg skal lave en besøgstæller på en af mine sites (php/mySql). Den skal
tælle unikke gæster (ikke hits) på den pågældende site, og statistikken skal
kunne læses/udskrives således at man kan se antallet af besøgende pr. dag i
en eller flere måneder tilbage.

Hvor finder jeg noget sådan kode, eller opskriften på hvordan det laves?

v.h.
Jakob



 
 
Anders Wegge Jakobse~ (24-02-2006)
Kommentar
Fra : Anders Wegge Jakobse~


Dato : 24-02-06 11:21

"Jakob Munck" <jm2_fjern_dette@webspeed.dk> writes:

> Jeg skal lave en besøgstæller på en af mine sites (php/mySql). Den
> skal tælle unikke gæster (ikke hits) på den pågældende site, og
> statistikken skal kunne læses/udskrives således at man kan se
> antallet af besøgende pr. dag i en eller flere måneder tilbage.

Det kan du ikke. Tænk på folk der sidder bagved en proxy. Det kan du
naturligvs komme udenom ved at sætte en cookie, men dem er der rigtig
mange der filtrer fra.

> Hvor finder jeg noget sådan kode, eller opskriften på hvordan det
> laves?

<http://www.google.com/search?q=php+visitor+count> lader til at finde
noget der er brugbart indenfor de begrænsninger der er.

// Wegge


Jakob Munck (24-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 24-02-06 12:39

>> Jeg skal lave en besøgstæller på en af mine sites (php/mySql). Den
>> skal tælle unikke gæster (ikke hits) på den pågældende site, og
>> statistikken skal kunne læses/udskrives således at man kan se
>> antallet af besøgende pr. dag i en eller flere måneder tilbage.
>
> Det kan du ikke. Tænk på folk der sidder bagved en proxy. Det kan du
> naturligvs komme udenom ved at sætte en cookie, men dem er der rigtig
> mange der filtrer fra.
>

Er det ikke nogenlunde det, som man gør på www.chart.dk ? Man tæller
"hits", men en enkelt bruger kan kun afsætte ét hit pr. besøg. Det er vel
det samme som at tælle unikke brugere. Er det ikke? Så jeg forestiller mig
at noget kode, der kan lave nogenlunde det samme, må være tilgængelig et
sted.


v.h.
Jakob



Erik Ginnerskov (24-02-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 24-02-06 12:53

Jakob Munck wrote:

> Er det ikke nogenlunde det, som man gør på www.chart.dk ? Man tæller
> "hits", men en enkelt bruger kan kun afsætte ét hit pr. besøg. Det er
> vel det samme som at tælle unikke brugere. Er det ikke? Så jeg
> forestiller mig at noget kode, der kan lave nogenlunde det samme, må
> være tilgængelig et sted.

http://hjemmesideskolen.dk/scripts/count.asp#php

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Jakob Munck (24-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 24-02-06 13:18

>
> http://hjemmesideskolen.dk/scripts/count.asp#php
>
> --

Hej Erik

de tællere du viser på din site tæller antallet af unikke besøgende. Det kan
jeg i forvejen. Det jeg gerne vil kunne er at have besøgsdata lagt ind i en
mySql-db, opdelt i dage, så man kan lave en udskrift der viser antallet af
unikke gæster den sidste måned, opdelt i dage. Det kan dine scripts ikke.


v.h.
Jakob



Dan Storm (24-02-2006)
Kommentar
Fra : Dan Storm


Dato : 24-02-06 17:04

Jakob Munck skrev:
> Hvor finder jeg noget sådan kode, eller opskriften på hvordan det laves?
Opskriften er ikke så svær! Dog skal du være opmærksom på brugere der
sidder bag proxy sagtens kan generere flere hits.

Lav to tabeller:
count_today = | IP |
count_stat = | id | timestamp | hits |

Indsæt hver besøgendes IP adresse én gang (1 unikt hit?)
Når dagen er omme får du et cronjob til at tælle alle hits op, indsætte
tallet i count_stat og sætter et timestamp for den pågældende dag.

Har du ikke adgang til cronjob kan du sætte et timestamp i count_today
også og så hver gang siden besøges kontrolleres der om de ip'er der er i
count_today er fra dagen før.

Ret simpelt, faktisk.


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jakob Munck (24-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 24-02-06 19:57

>
> Har du ikke adgang til cronjob kan du sætte et timestamp i count_today
> også og så hver gang siden besøges kontrolleres der om de ip'er der er i
> count_today er fra dagen før.
>
> Ret simpelt, faktisk.
>

Tak for hjælpen, men:

1. Hvad er "cronjob"?

2. Du skriver at denne kode er simpel, og det er nok rigtigt. Men ligger den
så ikke frit tilgængelig et sted på nettet (så man kan spare lidt tid)??


v.h.
Jakob



Dan Storm (24-02-2006)
Kommentar
Fra : Dan Storm


Dato : 24-02-06 20:26

Jakob Munck skrev:
> 1. Hvad er "cronjob"?
Et cronjob er en funktion der gør at du f.eks. kan køre et script hver
dag kl. 00.00. <url: http://en.wikipedia.org/wiki/Cronjob>

> 2. Du skriver at denne kode er simpel, og det er nok rigtigt. Men ligger den
> så ikke frit tilgængelig et sted på nettet (så man kan spare lidt tid)??
Jo, der sidder nok en nørd derude der har lagt sit script op som kan
netop det du efterlyser, men det er nok så svært at finde at du nok bør
bruge tid på selv at gøre det.

Du kunne eventuelt prøve på <url: http://hotscripts.com/PHP/>

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Geert Lund (24-02-2006)
Kommentar
Fra : Geert Lund


Dato : 24-02-06 22:19

Jakob Munck wrote:

> 2. Du skriver at denne kode er simpel, og det er nok rigtigt. Men ligger den
> så ikke frit tilgængelig et sted på nettet (så man kan spare lidt tid)??

Jo, men kunne du ikke selv søge efter det? Du har da fået et hav af
henvisninger gennem tiden til steder der kunne hentes færdiglavede scripts.

Jeg forstår bl.a. ikke hvad der var galt med det link du fik af Anders
Wegge? Måske ud over - at det kræver du selv kigger på de forskellige
muligheder...


--
Med venlig hilsen
Geert Lund

Jakob Munck (25-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 25-02-06 07:49

>
> Jeg forstår bl.a. ikke hvad der var galt med det link du fik af Anders
> Wegge? Måske ud over - at det kræver du selv kigger på de forskellige
> muligheder...
>

selvfølgelig søger jeg selv, men jeg har altså ikke fundet det jeg søgte
efter. Heller ikke v.hj.a. de søgeord, som Anders gav. Derfor ville det være
dejligt, hvis der var nogle der vidste mere præcis, hvor man kunne finde et
sådant script. Men er der ikke det, så må jeg jo bare søge videre - eller
få tid til at lave det selv, eller opgive.

Men lad lige være med at blive sur, det har du ingen grund til. Kan du ikke
lide mine spørgsmål, så lad være med at svare, så enkelt er det!

v.h.
Jakob



Geert Lund (25-02-2006)
Kommentar
Fra : Geert Lund


Dato : 25-02-06 10:42

Jakob Munck wrote:

> Men lad lige være med at blive sur, det har du ingen grund til. Kan du ikke
> lide mine spørgsmål, så lad være med at svare, så enkelt er det!

Jeg er skam ikke sur... men synes bare det nogle gange er lidt for nemt
bare at kaste spørgsmål ud i gruppen her og få andre til at lave ens
arbejde... det er såmænd det hele...


--
Med venlig hilsen
Geert Lund

Jakob Munck (25-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 25-02-06 14:01

>
> Jeg er skam ikke sur... men synes bare det nogle gange er lidt for nemt
> bare at kaste spørgsmål ud i gruppen her og få andre til at lave ens
> arbejde... det er såmænd det hele...
>

For nemt, nej det er det bestemt ikke. Det skal være så nemt som muligt. Men
det du tænker på er måske, at hjælpsomheden skulle blive "misbrugt". Det har
jeg nu heller ikke indtryk af er tilfældet. Hvis jeg stiller et spørgsmål er
det fordi jeg ikke selv har kunnet løse det, og - i herværende tilfælde -
kan jeg konstatere, at det er der heller ikke andre der kan. Men det gør vel
ikke mit spørgsmål mindre relevant!

v.h.
Jakob


PS. Jeg takker dog Dan for den abstrakte model til en løsning, som
naturligvis er helt korrekt.



Dan Storm (25-02-2006)
Kommentar
Fra : Dan Storm


Dato : 25-02-06 21:22

Jakob Munck skrev:
> For nemt, nej det er det bestemt ikke.
Det er meget nemt!

> Hvis jeg stiller et spørgsmål er
> det fordi jeg ikke selv har kunnet løse det, og - i herværende tilfælde -
> kan jeg konstatere, at det er der heller ikke andre der kan.
Der er absolut ingen grund til at begynde at fornærme hverken os eller
vores evner! Dette viser blot at du absolut ingen intentioner har om at
selv ville gøre noget for det!


> PS. Jeg takker dog Dan for den abstrakte model til en løsning, som
> naturligvis er helt korrekt.
Modellen er ikke abstrakt i forhold til hvad du bad om! hvis du vil have
en løsnings model, som kun tog 12 minutter at lave, er nedenstående et
godt bud. Går ud fra du kan finde ud af explode() funktionen og selv kan
hente resultaterne fra databasen for den specifikke dag.

mysql:

CREATE TABLE count_stat (
dato date NOT NULL default '0000-00-00',
hits int(10) NOT NULL default '0',
PRIMARY KEY (dato)
)

CREATE TABLE count_today (
ip varchar(50) NOT NULL default '',
dato date NOT NULL default '0000-00-00',
PRIMARY KEY (ip)
)


PHP kode:

<?php

mysql_connect('localhost', 'root', 'password');
mysql_select_db('stats');


$query = mysql_query("SELECT * FROM count_today");
if(mysql_num_rows($query) > 0)
{
   if(mysql_result($query, 0, 'dato') != date('Y-m-d'))
   {
      mysql_query("INSERT INTO count_stat (dato, hits) VALUES
('".mysql_result($query, 0, "dato")."', '".mysql_num_rows($query)."')");
      mysql_query("TRUNCATE TABLE `count_today`");
   }
}

unset($query);

$query = mysql_query("SELECT * FROM count_today WHERE
ip='".$_SERVER['REMOTE_ADDR']."'");
if(mysql_num_rows($query) < 1)
{
   mysql_query("INSERT INTO count_today (ip, dato) VALUES
('".$_SERVER['REMOTE_ADDR']."', NOW())");
}

unset($query);



?>



--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jakob Munck (26-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 26-02-06 07:42


"Dan Storm" <shadyz@_REMOVETHIS_err0r.dk> skrev i en meddelelse
news:4400bc86$0$99990$edfadb0f@dread16.news.tele.dk...
> Jakob Munck skrev:
>> For nemt, nej det er det bestemt ikke.
> Det er meget nemt!
>

Ja, og det bliver det forhåbentlig ved med at være, for det er hele Usenets
eksistensberettigelse.


>> Hvis jeg stiller et spørgsmål er det fordi jeg ikke selv har kunnet løse
>> det, og - i herværende tilfælde - kan jeg konstatere, at det er der
>> heller ikke andre der kan.
> Der er absolut ingen grund til at begynde at fornærme hverken os eller
> vores evner! Dette viser blot at du absolut ingen intentioner har om at
> selv ville gøre noget for det!
>

Nu er jeg åbenbart ikke så skrøbelig som dig, men ellers var det nok mig,
som havde grund til at føle mig fornærmet.


>> PS. Jeg takker dog Dan for den abstrakte model til en løsning, som
>> naturligvis er helt korrekt.
> Modellen er ikke abstrakt i forhold til hvad du bad om!

Nej, for jeg bad om en URL, så det har du ret i. Men tak alligevel!

v.h.
Jakob



Geert Lund (25-02-2006)
Kommentar
Fra : Geert Lund


Dato : 25-02-06 22:00

Jakob Munck wrote:

> For nemt, nej det er det bestemt ikke. Det skal være så nemt som muligt. Men
> det du tænker på er måske, at hjælpsomheden skulle blive "misbrugt". Det har
> jeg nu heller ikke indtryk af er tilfældet. Hvis jeg stiller et spørgsmål er
> det fordi jeg ikke selv har kunnet løse det, og - i herværende tilfælde -
> kan jeg konstatere, at det er der heller ikke andre der kan. Men det gør vel
> ikke mit spørgsmål mindre relevant!

Jo, jeg synes det er for nemt - normalt er det meningen man hjælper folk
videre i deres konkrete problemer her i gruppen. Ikke forærer dem hele
løsninger uden folk selv prøver først. Sådan har det altid været - og
jeg tror jeg har været her en hel del længere end du har.

Det er helt ok at alle skal starte et sted - men den larmende tavshed
tror jeg ikke du skal opfatte som at dit spørgsmål er svært eller
umuligt at løse - faktisk er det du skal have løst - kodet næsten lige
så mange gange som der er lavet websites. Du har fat i et af de helt
almindelige essentielle dele af et website.

Lige så længe der har været websites har der været folk der har lavet
løsninger til at måle trafik og hits. Min påstand er så - at du kan nok
ikke finde et enme der er meget bedre dækket end trafikmåling - både
kommercielt men da bestemt også ukommercielt. Og med de krav du stiller
bør det simpelthen ikke være umuligt at finde en passende løsning ved at
bruge en time eller to på at finde et passende script! - Nu hvor du jo
ikke selv gider, kan eller vil kode det.

Jeg er ret sikker på at de fleste der normalt mere end velvilligt
hjælper andre her i gruppen - relativt hurtigt - kan komme op med en
simpel løsning der dækker dit behov (hvad enten det er pseudo eller
regulær kode). Tavsheden skal IMNSHO altså ikke på nogen måde tages som
udtryk for at du har stillet verdens sværeste spørgsmål!

Men - normalt afregnes den slags special udvikling på time basis!

--
Med venlig hilsen
Geert Lund

Jakob Munck (26-02-2006)
Kommentar
Fra : Jakob Munck


Dato : 26-02-06 07:32

>
> Jo, jeg synes det er for nemt - normalt er det meningen man hjælper folk
> videre i deres konkrete problemer her i gruppen. Ikke forærer dem hele
> løsninger uden folk selv prøver først. Sådan har det altid været - og jeg
> tror jeg har været her en hel del længere end du har.
>

Ja, men jeg synes da bestemt at det skal fortsætte på denne måde. Jeg har på
intet tidspunkt i denne tråd bedt nogle om, at lave så meget som én linie
kode til mig. Jeg har spurgt om nogle vidste, hvor man kunne finde et sådant
script, altså en URL, og det er noget helt andet. Og det har jeg så kunnet
konstatere, at der ikke var nogle der kunne. Altså har jeg også ret i, at
ingen kunne besvare mit spørgsmål.

At så en masse mennesker kan lave den nødvendige kode, det er jeg ikke i
tvivl om. Men det er altså ikke det, som jeg har bedt om.


> Det er helt ok at alle skal starte et sted - men den larmende tavshed tror
> jeg ikke du skal opfatte som at dit spørgsmål er svært eller umuligt at
> løse - faktisk er det du skal have løst - kodet næsten lige så mange gange
> som der er lavet websites. Du har fat i et af de helt almindelige
> essentielle dele af et website.
>

Klar nok. Og netop derfor skulle man tro, at man let kunne finde en URL med
den færdige kode. Men det kunne jeg ikke, og derfor spurgte jeg og kunne
konstatere, at andre åbenbart heller ikke kunne.


> Lige så længe der har været websites har der været folk der har lavet
> løsninger til at måle trafik og hits. Min påstand er så - at du kan nok
> ikke finde et enme der er meget bedre dækket end trafikmåling - både
> kommercielt men da bestemt også ukommercielt. Og med de krav du stiller
> bør det simpelthen ikke være umuligt at finde en passende løsning ved at
> bruge en time eller to på at finde et passende script! - Nu hvor du jo
> ikke selv gider, kan eller vil kode det.
>
> Jeg er ret sikker på at de fleste der normalt mere end velvilligt hjælper
> andre her i gruppen - relativt hurtigt - kan komme op med en simpel
> løsning der dækker dit behov (hvad enten det er pseudo eller regulær
> kode). Tavsheden skal IMNSHO altså ikke på nogen måde tages som udtryk for
> at du har stillet verdens sværeste spørgsmål!
>
> Men - normalt afregnes den slags special udvikling på time basis!
>

Nej, hvis man kender en sådan URL så tager det vel 30 sekunder at poste den.
Noget helt andet er så, hvis man vil have penge for sit arbejde, så er man
jo i den forkerte nyhedsgruppe.


v.h.
Jakob



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste