Nénmacil Skrevet 14. november 2003 Del Skrevet 14. november 2003 (endret) 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 14. november 2003 av azone Lenke til kommentar
ZoRaC Skrevet 14. november 2003 Del Skrevet 14. november 2003 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
Nénmacil Skrevet 14. november 2003 Forfatter Del Skrevet 14. november 2003 Takker så meget for en utfyllende kode, denne kommer til nytte!. 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? Takker nok en gang Lenke til kommentar
baRs Skrevet 20. november 2003 Del Skrevet 20. november 2003 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
sven-o Skrevet 21. november 2003 Del Skrevet 21. november 2003 (endret) 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 21. november 2003 av sven-o 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å