Gå til innhold

Besøksteller som teller unike besøkende


Anbefalte innlegg

Videoannonse
Annonse

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

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 av ntec
Lenke til kommentar

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
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
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

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

<?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 av Zic0
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...