Gå til innhold

Hjelp til en simpel hitcounter


Anbefalte innlegg

denne hitcounteren teller kun en gang per ip, eller det vil si den skal telle en gang per ip

 

<?php

$fil = file("ip.txt");
$tell = count($fil);

$ip = $_SERVER["REMOTE_ADDR"];


foreach($fil as $linje) {
$ex = explode("*", $linje);
if ($ip !== $ex[0]) {

$skrive = fopen("ip.txt", "a");
$text = "{$ip}*ok*\r\n";
fwrite($skrive, $text);
fclose($skrive);
header("refresh:1");
break;
}

else

echo $tell;
}
?>

 

men hva er galt?

 

takker for alle svar :thumbup:

Lenke til kommentar
Videoannonse
Annonse

<?php

$fil = file("ip.txt");

$tell = count($fil);

$ip = $_SERVER['REMOTE_ADDR'];

foreach($fil as $linje) {

$ex = explode("*", $linje);

if ($ip != $ex[1]) {

$skrive = fopen("ip.txt", "a");

$text = "*$ip*ok*\r\n";

fwrite($skrive, $text);

fclose($skrive);

header("refresh:1");

}

 

else

 

echo $tell;

}

?>

Lenke til kommentar

foreach($fil as $linje) {
$ex = explode("*", $linje);
if ($ip !== $ex[0]) {

$skrive = fopen("ip.txt", "a");
$text = "{$ip}*ok*\r\n";
fwrite($skrive, $text);
fclose($skrive);
header("refresh:1");
break;
}

 

Jeg antar at det er en feil i if-setningen, som resulterer i at du skriver IP'en til fil med en gang du finner en IP som er ulik. Du sjekker ikke egentlig om IP-adressen er der, eller ikke.

 

Du bør kanskje vente med all skriving til fil til etter foreach-loopen er ferdig. Forslag (ikke testet):

 

$exists = false;

foreach($fil as $linje) {
   $ex = explode("*", $linje);
   if ($ip == $ex[0])
       $exists = true;
}

if ($exists)
   echo $tell;
else {
   $skrive = fopen("ip.txt", "a");
   $text = "{$ip}*ok*\r\n";
   fwrite($skrive, $text);
   fclose($skrive);
   header("refresh:1");
}

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å
×
×
  • Opprett ny...