Avatar billede dero Nybegynder
28. december 2003 - 18:17 Der er 9 kommentarer

Besøgstæller problem

Hej..

Jeg skal bruge en besøgstæller på een side..

Jeg tænkte, at det gør man ved at lave en txt fil (count.txt) og så få et script til at tilføje en linje i scriptet når man kommer ind på siden. Scriptet skal skrive en linje med ens ip, samt dato og klokkeslæt for hvornår man kom ind på siden, men den skal kun tilføje en sådan linje, hvis ens ip ikke allerede ligger i scriptet, og så tæller man jo bare hvor mange linjer der er, og det er så lig antal besøgne.

Det er i hvertfallet sådan jeg har forstået det script jeg har downloaded.. Men det virker ikke!

Er der nogle der har en anden idee, eller kan fikse det jeg har nu?

Mange tak.. p.s. Jeg har desværre vidlt brug for det snart :-(

koden ser sådan her ud:

<?
// ps. count.txt skal chmode's til 766...
$ip = getenv("REMOTE_ADDR");
$fil = "count.txt";
$f = file($fil);
$antal = count($f);
$yest = time() - 600000;
$o = "0";
$xidag = "f";
$idag = time();
$idag2 = date("Y F d, H:i");
$idag3 = date("d F Y, 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") {
    $logg = fopen("$fil", "a");
    fputs ($logg, "$ip $idag, $idag2\n");

    fclose ($logg);
  }
$f = file($fil);
$antal = count($f);
  if ($x == "t") {
// Hvis man har været der før...
  echo $idag3;
}
else {
  echo $idag3;
}
?>
Avatar billede eagleeye Praktikant
28. december 2003 - 19:54 #1
Hvordan virker det ikke?

Det ser da umiddelbart fint ud, dog udskriver du ikke antalet men kun en dato til sidst:

Du kan prøve at tilføje en som udskriver antallet:

echo "Der har være $antal besøgne på siden<br>";
Avatar billede dero Nybegynder
28. december 2003 - 20:17 #2
Jeg har med vilje gjordt så det er datoen den udskriver, da folk ikke skal kunne se det, men kun mig, og jeg skulle alligevel bruge en dato på siden :-)

Jeg tror problemet ligger i at den kun kan tilføje een linje, så kan den ikke finde ud af resten, der er i hvertfaldet kuhn een linje i count.txt uanset hvor mange der har været på siden..
Avatar billede eagleeye Praktikant
28. december 2003 - 20:38 #3
Ok, er det fordi du bruger en windwos makskine / Notepad til at kigge på filen?
Der er det \r\n og ikke kun \n som er linje skift.

Og man kan af en eller anden grund ikke bare skrive \r\n i direkte:
  fputs ($logg, "$ip $idag, $idag2\n");

Så du må prøve at gøre sådan her så skulle det virke:

  $str = "$ip $idag, $idag2\r\n";
  fputs ($logg, $str);
Avatar billede martinbk Nybegynder
28. december 2003 - 20:44 #4
altså eagle da :D

$str = $ip.$idag.','.$idag2.'\r\n';
Avatar billede dero Nybegynder
29. december 2003 - 22:49 #5
Det har jeg prøvet nu, men det virker altså stadig ikke.. Det er noget lort!
Avatar billede eagleeye Praktikant
30. december 2003 - 00:25 #6
Jeg har lige prøvet din kode i en fil hos b-one og det køre helt fint.. Så det kan jeg nok ikke hjælpe vidre med.
Avatar billede dero Nybegynder
30. december 2003 - 15:38 #7
Satans.. Kan du ikke lige skrive det som et svar eagleeye??

Mvh
Anders
Avatar billede eagleeye Praktikant
30. december 2003 - 16:31 #8
Kun hvis det virker.
Avatar billede dero Nybegynder
30. december 2003 - 18:01 #9
Det gør det desværre ikke for mig, men det må jo være noget med serveren eller noget..
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