Gå til innhold

Besøksteller på hjemmeside


Anbefalte innlegg

Hei

 

jeg trenger en besøksteller til min hjemmeside, som printer antall besøkende i text format (altså ikke grafisk). Dette er ikke noe problem å lage, men problemet er at jeg ønsker bare at brukeren som besøker siden min, skal kunne øke besøkstelleren med 1 i løpet av 24 timer. Med andre ord trenger jeg en kode som kan logge brukeren (IP adressen) eller noe lignende.

 

Jeg takker for all hjelp jeg kan få.

 

Forresten, besøkstelleren skal brukes på denne siden.

Endret av azone
Lenke til kommentar
Videoannonse
Annonse

Jeg bruker denne:

<?php

/* Don't forget to CHMOD $file to 777 */
$file = "my_hits.txt";


// Obtain users IP address
$ipadd = getenv(REMOTE_ADDR);
$addip = "TRUE";
$hits = 0;


if (file_exists($file))
{
} else
{
echo "$file does not exist!";
exit;
}


// Open $file and search each line (IP address) for a match
$fp = fopen($file,"r");
while (!feof($fp))
{
$line = fgets($fp, 4096); //gets one line at a time
$line=trim($line);
if ($line != "")
{
$hits++;
}
// If IP is already logged
if ($line==$ipadd)
{
$addip = "FALSE";
}
}
fclose($fp);

// If the IP was not previously logged, append it to $file
if ($addip == "TRUE")
{
$fp = fopen($file,"a");
fwrite($fp, "\n");
fwrite($fp, $ipadd);
fclose($fp);
$hits++;
}

// Display hits
echo $hits;
?>

 

Den teller samme IP bare 1 gang, samme om det er 1 mnd siden den IP'en var innom.

Lenke til kommentar

du kan også bruke cookies til å sjekke det..

 

setcookie("Besokteller", 1,time()+86400); // kaken er gyldig i 24 timer

if($_COOKIE['Besokteller']) { //ikke logg brukeren } else { //logg brukeren }

ulempen er at browseren til gjesten må tillate cookies, noe som ikke er tilfelle hos mange!

Lenke til kommentar
Ett annet spørsmål, hva hvis jeg vil at den skal slette IP'en etter la oss si 24 timer? Går dette? I såfall hvordan?

Denne gjør det:

<?
$file = "counter.dat";
$expires = "86400"; //Angi antall sekunder før ip'en slettes

$ip = getenv(REMOTE_ADDR);

if(file_exists($file) && is_writeable($file)){

$data = unserialize(implode("",file($file)));
if(!is_array($data))
 $data["old"] = -1;
else
 $modified = clean($data, $expires);
 
if(!array_key_exists($ip, $data)){
 $data[$ip] = time();
 $modified = 1;
}
if($modified){
 $fp = fopen($file,"w");
 fwrite($fp, serialize($data));
 fclose($fp);
}

echo "Visitors: ".(count($data)+$data["old"]);
}
else{
echo "Counter file not found or not writeable";
exit;
}

function clean(&$data, $expires){
foreach(array_keys($data) as $post)
 if($post != "old" && $data[$post]<time()-$expires){
 	unset($data[$post]);  
 	$data["old"]++;   
 	return 1;
 }
return 0;
}
?>

 

Edit: kodeleif

Endret av sven-o
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...