Avatar billede frostware Nybegynder
12. juni 2004 - 15:09 Der er 13 kommentarer og
1 løsning

besøgstæller som udelukker min ip

Hej.

Jeg har en besøgstæller som bruger dette script:

<?php
$ip = getenv("REMOTE_ADDR");
$all = updateCount($ip,"./count/count.txt");  // Husk at bruge \\ istedet for \
$day = updateCount($ip, "./count/count1.txt", true);

function updateCount($ip,$fil,$daily=false) {
  $f = file($fil);
  $antal = count($f);
  $yest = time() - 600;
  $o = 0;
  $xidag = "f";
  $idag = time();
  $idag2 = date("Y F d, H:i");
  while ($antal > $o) {
    $streg = explode(" ", $f[$o]);
      if ($ip == $streg[0]) {
      $x = "t";
        if ($streg[1] > $yest) {
          $xidag = "t";
        }
      }
    $o++;
  }

  if ($xidag == "f") {
    if( $daily && date("z",filemtime($fil)) < date("z")) {
        $logg = fopen("$fil", "w");
        $antal = 0;
    }
    else {
        $logg = fopen("$fil", "a");
    }

    fputs ($logg, "$ip $idag, $idag2\n");

    fclose ($logg);
    $antal++;
  }

  return $antal;
}
?>

Er der nogen som kan tilføje noget som gør at hvis jeg går ind på siden med ip adressen, f.eks. 81.82.83.84, så skal scriptet stopppe med det samme så jeg ikke bliver talt med.
Avatar billede riversen Nybegynder
12. juni 2004 - 15:11 #1
du kan vel pakke det hele ind i en if fx..

if( $_SERVER["REMOTE_ADDR"] != "81.82.83.84" )

eller evt. bruge cookie baseret hvis du har dynamisk ip eller tilgår fra flere pc'er jævnligt.
Avatar billede jaw Nybegynder
12. juni 2004 - 15:13 #2
Hvis det kun drejer sig om 1 IP, så kan du måske bruge:
<?php
$ip = getenv("REMOTE_ADDR");
$all = updateCount($ip,"./count/count.txt");  // Husk at bruge \\ istedet for \
$day = updateCount($ip, "./count/count1.txt", true);

function updateCount($ip,$fil,$daily=false) {
  $f = file($fil);
  $antal = count($f);
  $yest = time() - 600;
  $o = 0;
  $xidag = "f";
  $idag = time();
  $idag2 = date("Y F d, H:i");
  while ($antal > $o) {
    $streg = explode(" ", $f[$o]);
      if ($ip == $streg[0]) {
      $x = "t";
        if ($streg[1] > $yest) {
          $xidag = "t";
        }
      }
    $o++;
  }

  if($ip != "81.82.83.84") {
    if ($xidag == "f") {
      if( $daily && date("z",filemtime($fil)) < date("z")) {
          $logg = fopen("$fil", "w");
          $antal = 0;
      }
      else {
          $logg = fopen("$fil", "a");
      }

      fputs ($logg, "$ip $idag, $idag2\n");
      fclose ($logg);
      $antal++;
    }
  }

  return $antal;
}
?>
Avatar billede jakobclausen Nybegynder
12. juni 2004 - 15:13 #3
<?php
$ip = getenv("REMOTE_ADDR");
if($ip != "81.82.83.84")
{
$all = updateCount($ip,"./count/count.txt");  // Husk at bruge \\ istedet for \
$day = updateCount($ip, "./count/count1.txt", true);

function updateCount($ip,$fil,$daily=false) {
  $f = file($fil);
  $antal = count($f);
  $yest = time() - 600;
  $o = 0;
  $xidag = "f";
  $idag = time();
  $idag2 = date("Y F d, H:i");
  while ($antal > $o) {
    $streg = explode(" ", $f[$o]);
      if ($ip == $streg[0]) {
      $x = "t";
        if ($streg[1] > $yest) {
          $xidag = "t";
        }
      }
    $o++;
  }

  if ($xidag == "f") {
    if( $daily && date("z",filemtime($fil)) < date("z")) {
        $logg = fopen("$fil", "w");
        $antal = 0;
    }
    else {
        $logg = fopen("$fil", "a");
    }

    fputs ($logg, "$ip $idag, $idag2\n");

    fclose ($logg);
    $antal++;
  }

  return $antal;
}
}
?>
Avatar billede frostware Nybegynder
12. juni 2004 - 15:17 #4
det virker ikke. Den melder fejl og siden vises ikke
Avatar billede jakobclausen Nybegynder
12. juni 2004 - 15:18 #5
frostware >> Vi er flere der kommer med forslag, så du er nok lige nødt til at skrive hvilket forslag det er som giver fejl.
Avatar billede frostware Nybegynder
12. juni 2004 - 15:18 #6
jep har lige opdaget det jakobclausen. DEt er dit script jeg ikke kan få til at virke
Avatar billede jakobclausen Nybegynder
12. juni 2004 - 15:21 #7
Ja for den stopper scriptet, fordi det er din ipadresse, som du gerne ville.
nogen fejlmeddelse?
Avatar billede frostware Nybegynder
12. juni 2004 - 15:22 #8
Fatal error: Call to undefined function: updatecount() in /home/web/web18130/program/index.php on line 39
Avatar billede jaw Nybegynder
12. juni 2004 - 15:23 #9
Så kan du jo prøve min løsning, jeg ekskluderer ikke updatecount();
Avatar billede frostware Nybegynder
12. juni 2004 - 15:27 #10
det ser ud til at jaw's kode virker. Kan jeg lige få én til at gå ind på www.program.frostware.dk
Så jeg kan se om den tæller, andres ip'er
Avatar billede jakobclausen Nybegynder
12. juni 2004 - 15:32 #11
har været inde på siden
Avatar billede frostware Nybegynder
12. juni 2004 - 15:32 #12
det virker. Jaw smid et svar!.....kan andre forresten gå ind i php koden på en hjemmeside og f.eks. se min ip
Avatar billede jakobclausen Nybegynder
12. juni 2004 - 15:33 #13
Nej det kan de ikke - for php afvikles og fortolkes på din server
Avatar billede jaw Nybegynder
12. juni 2004 - 15:39 #14
Perfekt jo :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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