ntec Skrevet 12. oktober 2005 Del Skrevet 12. oktober 2005 (endret) Hvordan lager jeg en counter til websiden min som teller antall besøkende ved å se hvor mange forskjellige ip-adresser som har vær på siden min? Endret 13. oktober 2005 av ntec Lenke til kommentar
Dahl Skrevet 12. oktober 2005 Del Skrevet 12. oktober 2005 (endret) Ved hjelp av PHP og en mer beskrivende emnetittel. Endret 12. oktober 2005 av @kd Lenke til kommentar
hockey500 Skrevet 12. oktober 2005 Del Skrevet 12. oktober 2005 kanskje noe slikt? <?php $ipadresser = file('ipadresser.txt'); if(!in_array($_SERVER['REMOTE_ADDR'], $ipadresser)) { $AntBesokende = file_get_contents('teller.txt'); $AntBesokende++; $counter = fopen('teller.txt','w'); fwrite($counter, $AntBesokende); fclose($counter); } $filref = fopen('ipadresser.txt','w'); fwrite($filref, $_SERVER['REMOTE_ADDR']); fwrite($filref, "\n"); fclose($filref); include("teller.txt"); ?> noe sånt kanskje? har ikke prøvd koden Lenke til kommentar
ntec Skrevet 13. oktober 2005 Forfatter Del Skrevet 13. oktober 2005 (endret) Jeg fikk telleren til å funke, se www.draglan.net/teller.php ... men et problem, denne telleren teller ikke unike besøkende.. hvis jeg går inn 5 ganger til den siden (teller.php), så teller den 5 besøkende i stedet for en besøkende.... Endret 13. oktober 2005 av ntec Lenke til kommentar
rødøye Skrevet 13. oktober 2005 Del Skrevet 13. oktober 2005 Du kan bruke session til å registrere hvem som allerede har deltat i tellingen. <?php session_start(); $_SESSION['mantall'] = TRUE; ?> Lenke til kommentar
ntec Skrevet 13. oktober 2005 Forfatter Del Skrevet 13. oktober 2005 Okey.. men et lite problem til, det hadde vært kjekt om den hadde lagret antall besøkende per dag. Lenke til kommentar
Amnio Skrevet 13. oktober 2005 Del Skrevet 13. oktober 2005 Her er en måte å gjøre det på: <?php $datafil = "data/dagens.txt"; //første linje i denne fila er antallet besøkende //andre linje er datoen for siste innføring $infofrafil=file($datafil); $antall=$infofrafil[0]; $dato=$infofrafil[1]; if($dato==date('Y-m-d')) { //øker antallet da det er samme dato //sett inn eventuell sjekk for unik id her $dagens = fopen($datafil,'w'); $antall= $antall + 1; fwrite($dagens, $antall."\n".$dato); fclose($dagens); } else { //ny dag, setter antall til 1 og setter dato til i dag $dagens = fopen($datafil,'w'); fwrite($dagens, "1"."\n".date('Y-m-d')); fclose($dagens); } ?> Lenke til kommentar
Steinmann Skrevet 13. oktober 2005 Del Skrevet 13. oktober 2005 Som selvfølgelig må gnukkes sammen med en av de andre metodene om du skal ha unike treff Denne er foresten feilpostet, raporterer den for deg jeg. Lenke til kommentar
Amnio Skrevet 13. oktober 2005 Del Skrevet 13. oktober 2005 Som selvfølgelig må gnukkes sammen med en av de andre metodene om du skal ha unike treff Jupp, men noe må han gjøre selv. Nevnte det forresten i koden ovenfor også, dog med noe tvilsom plassering. Her er en fungerende versjon av koden til Hockey500 for unike besøkende: <?php $datamappe = "data/"; $tellefil = "teller.txt"; $ipadressefil = "ipadresser.txt"; $ipadresser = file($datamappe.$ipadressefil); //array med IP-er if(!in_array($_SERVER['REMOTE_ADDR']."\n", $ipadresser)) { echo "Du er en ny besøkende."; //debug echo "<br>"; //debug echo "Antall besøkende: "; //debug $AntBesokende = file_get_contents($datamappe.$tellefil); $AntBesokende++; $counter = fopen($datamappe.$tellefil,'w'); fwrite($counter, $AntBesokende); fclose($counter); $lesipadressefil = fopen($datamappe.$ipadressefil, "w"); fwrite($lesipadressefil, $_SERVER['REMOTE_ADDR']); fwrite($lesipadressefil, "\n"); fclose($lesipadressefil); } else { //debug echo "Du har vært her før."; echo "<br>"; echo "Antall besøkende: "; } include($datamappe.$tellefil); //debug ?> Sleng så inn en sjekk for om datoen har skifta, så er du i mål Ntec. Lenke til kommentar
am3k Skrevet 14. oktober 2005 Del Skrevet 14. oktober 2005 Flyttes fra "Web-design, HTML og CSS" til en mer passende kategori Lenke til kommentar
ntec Skrevet 14. oktober 2005 Forfatter Del Skrevet 14. oktober 2005 Som selvfølgelig må gnukkes sammen med en av de andre metodene om du skal ha unike treff Jupp, men noe må han gjøre selv. Nevnte det forresten i koden ovenfor også, dog med noe tvilsom plassering. Her er en fungerende versjon av koden til Hockey500 for unike besøkende: <?php $datamappe = "data/"; $tellefil = "teller.txt"; $ipadressefil = "ipadresser.txt"; $ipadresser = file($datamappe.$ipadressefil); //array med IP-er if(!in_array($_SERVER['REMOTE_ADDR']."\n", $ipadresser)) { echo "Du er en ny besøkende."; //debug echo "<br>"; //debug echo "Antall besøkende: "; //debug $AntBesokende = file_get_contents($datamappe.$tellefil); $AntBesokende++; $counter = fopen($datamappe.$tellefil,'w'); fwrite($counter, $AntBesokende); fclose($counter); $lesipadressefil = fopen($datamappe.$ipadressefil, "w"); fwrite($lesipadressefil, $_SERVER['REMOTE_ADDR']); fwrite($lesipadressefil, "\n"); fclose($lesipadressefil); } else { //debug echo "Du har vært her før."; echo "<br>"; echo "Antall besøkende: "; } include($datamappe.$tellefil); //debug ?> Sleng så inn en sjekk for om datoen har skifta, så er du i mål Ntec. 5000743[/snapback] Flott, fikk den til å fungere! men kan du få den til å logge antall besøkende per dag? DA er jeg i mål Lenke til kommentar
???????? Skrevet 14. oktober 2005 Del Skrevet 14. oktober 2005 Dersom siden din har litt størrelse så må jeg desverre si at du MÅ ABSOLUTT IKKE BRUKE scriptet ovenfor! Scriptet vil knele serveren. Det som orsus sier er veldig viktig. Ikke bruk den funksjonen ovenfor for å sjekke hvis en bruker har vært der. Da må du i så fall slette filen hver dag eller noe lignende. Hvis du velger å benytte en SQL løsning så vil ikke problemet være like stort. Da kan du indeksere feltet, og da er det en B-tree gruppering av dataene. Det vil si at SQL serveren vet ca. hvor den skal lete for å finne frem ip adressen hvis den finnes. Glem ikke at de fleste seriøse hoster vil kaste deg ut av serveren dersom du bruker for mye ressurser! Lenke til kommentar
Zic0 Skrevet 14. oktober 2005 Del Skrevet 14. oktober 2005 (endret) <?php //Laget av Zico if(!is_file('counts.txt')){ die('count.txt fins ikke'); } if(!is_writable('counts.txt')){ if(!@chmod('counts.txt', 0666)){ die('Kunne ikke automatisk chmodde count.txt. Gjør det manuelt'); } } if(!$fp = fopen('counts.txt', 'a')){ die('Kunne ikke åpne count.txt'); } fwrite($fp, $_SERVER['REMOTE_ADDR'] . "\n"); fclose($fp); if(!file('counts.txt')){ die('Kunne ikke åpne count.txt'); } function hits($unique = FALSE){ if($unique == FALSE){ echo count(file('counts.txt')); } else { echo count(array_unique(file('counts.txt'))); } } function ip(){ foreach( array_unique(file('counts.txt')) as $ip){ echo "$ip<br>\n"; } } ?> <p>hits: <? hits(); ?><br> Unike treff: <? hits(TRUE); ?><br> </p> <p> Unike Iper: <br> <? ip(); ?> </p> Jeg vet ikke om denne her er noe mindre ressurskrevende, men den funker... Må vel også nevnes at fila kan bli FRYKTLIG stor... Endret 14. oktober 2005 av Zic0 Lenke til kommentar
ntec Skrevet 14. oktober 2005 Forfatter Del Skrevet 14. oktober 2005 neida, den fila blir ikke så stor! blir bare 146 kb / 10 000 besøkende... men den telleren har heller ikke statistikk som viser ant besøkende den og den dagen Lenke til kommentar
Zic0 Skrevet 14. oktober 2005 Del Skrevet 14. oktober 2005 Vil du den skal tømmes hver dag også? Lenke til kommentar
???????? Skrevet 15. oktober 2005 Del Skrevet 15. oktober 2005 ntec, hvorfor kikker du ikke bare innom hotscripts.com? Der finner du avanserte tellere, f.eks. phpmyvisites som viser alt om brukeren i tillegg. Du kan der se hvordan brukeren har funnet siden din, hvor mange sidevisninger, hvor mange unike hits, gjennomsnittlig besøkestid, landet de kommer fra - og så videre. Lenke til kommentar
ntec Skrevet 18. oktober 2005 Forfatter Del Skrevet 18. oktober 2005 Vil du den skal tømmes hver dag også? 5005222[/snapback] Nei, den skal notere ned hvor mange som var på siden dag for dag.. f.eks: 1.11: 42 2.11: 43 3.11: 32 4.11: 54 osv...... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå