Avatar billede runberg Nybegynder
11. marts 2010 - 13:16

Mindre ændring/tilføjelse af eksisterende PHP script

Hej alle

Jeg er ikke den store PHP programmør, så jeg håber på at kunne få lidt hjælp til et eksisterende PHP script (en besøgstæller), som jeg har fundet på nettet:

Scriptet:
<?php
    $ip = $_SERVER['REMOTE_ADDR'];
   
    $file_ip = fopen('counter/ip.db', 'rb');
    while (!feof($file_ip)) $line[]=fgets($file_ip,1024);
    for ($i=0; $i<(count($line)); $i++) {
        list($ip_x) = split("\n",$line[$i]);
        if ($ip == $ip_x) {$found = 1;}
    }
    fclose($file_ip);
   
    if (!($found==1)) {
        $file_ip2 = fopen('counter/ip.db', 'ab');
        $line = "$ip\n";
        fwrite($file_ip2, $line, strlen($line));
        $file_count = fopen('counter/count.db', 'rb');
        $data = '';
        while (!feof($file_count)) $data .= fread($file_count, 4096);
        fclose($file_count);
        list($today, $yesterday, $total, $date, $days) = split("%", $data);
        if ($date == date("Y m d")) $today++;
            else {
                $yesterday = $today;
                $today = 1;
                $days++;
                $date = date("Y m d");
            }
        $total++;
        $line = "$today%$yesterday%$total%$date%$days";
       
        $file_count2 = fopen('counter/count.db', 'wb');
        fwrite($file_count2, $line, strlen($line));
        fclose($file_count2);
        fclose($file_ip2);
    }

?>

Spørgsmål:
Ovenstående tæller unikke hits på hjemmesiden, og gør det op i antal unikke besøgende d.d. og unikke besøgende i går, og endeligt unikke besøgende totalt set. Dette fungerer fint!

Jeg vil dog gerne have ændret scriptet således at det tæller unikke besøgende pr. dag stadigvæk, men når en ny dag starter, starter vi også forfra i forhold til hvorvidt der er tale om et unikt besøg. Det vil altså sige at når en ny dag starter skal IP-databasen nulstilles. Ingen af tællerne skal nulstilles.

Som sagt er jeg ikke den store haj til PHP, men som jeg ser det, så er det kun i IF-sætningen:

if ($date == date("Y m d")) $today++;
            else {
                $yesterday = $today;
                $today = 1;
                $days++;
                $date = date("Y m d");
            }

- at der skal tilføjes en smule.

Det jer ser der skal tilføjes er at i filen ip.db skal alle IP-adresser slettes, og efterfølgende skal det pågældende besøgs-ip-adresse skrives, således at denne adresse nu står som den eneste.

Jeg håber det hele giver mening, og at der er en der kan hjælpe.

På forhånd tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester