Tässä olisi tarkoitus olla kävijälaskuri, joka kerää talteen ns. uniikit, eli eri ip:n omaavat kävijät. Mutta näyttäisi siltä, että mielestäni kävijöitä on liikaa :D. Tai sitten ei, mutta ajattelin, että jos teillä on aikaa katsoa, toimiiko tämä oikein niin olisin kiitollinen.
<?php
# Sivuston kävijälaskuri.
# Tiedostoon **.txt kerätään uniikit kävijätiedot ip-osoitteiden perusteella
# Tiedostoon **.txt kerätään kävijätiedot f5- taktiikalla,
# eli aina kun sivu latautuu uudelleen
# Tiedostojen sijainnit
$file_location="ip.txt";
$file_location_two="all.txt";
# Tarkistetaan selaimen ip-osoite
$ipAddress= $_SERVER['REMOTE_ADDR'];
$file = file($file_location);
# Ip osoitetta ei olla alustavasi löydetty.
$ei_loydetty = true;
for($i=0; $i < count($file); $i++)
if($ipAddress == trim($file[$i]))
{
# Ip -osoitetta on löydetty joten asetaan muuttujan arvoksi false,
# jotta voidaan matka katkeaa
$ei_loydetty = false;
# A kirjain avaa tiedoston vain kirjoittamista varten.
$fl2 = fopen($file_location_two, "a");
# Kirjoitetaan tiedostoon
fwrite($fl2, '1' ."\r\n");
break;
}
# Tiedostoa ei ole läydetty, jatketaan matkaa tästä
if($ei_loydetty == true)
{
# Jos tiedostoa ei ole vielä olemassa, luodaan se.
$fl = fopen($file_location, "a");
# Kirjoitetaan tiedostoon
fwrite($fl,$ipAddress."\r\n");
}
# Lasketaan kävijät
$calculate = count(file($file_location));
# Lasketaan kävijät 2
$calculate2 = count(file($file_location_two));
echo '<font style="font-family:arial; color:white;">Sivuillamme on vieraillut <b>'. $calculate .'</b> käyttäjää.</font><br/>';
?>Silmukan jälkeen ei ole aaltosulkua:
Tällöin silmukassa suoritetaan ainoastaan sitä seuraava if-lause. Tämä kuitenkin lähemmän tarkastelun jälkeen vaikuttaa tarkoitukselliselta, onko se?
Muuta virhettä en koodin perusteella löytänyt, kokeilepa vaikka laittaa silmukan sisään rivit
niin saat niitä arvoja esille ja näet onko if-lause koskaan tosi. Ehkä trim() korvaa jotain väärin, esimerkiksi rivinvaihdon välilyönnillä? Tällöin voi toimia
if($ipAddress == str_replace(" ", "", trim($file[$i]));
Jos et tee kävijälaskuria tekemisen ilosta vaan tarpeeseen, kannataa ottaa käyttöön varmasti toimiva ja monipuolinen: https://www.ohjelmointiputka.net/koodivinkit/
Tekemisen ilosta tätä teen ja jos vika löytyy, niin siitä sitä iloa vasta saa. Jos on vikaa. :D. Mutta sulut puuttuvat vahingossa ja pitääpä huomenna tarkistaa mitä se sen jälkeen sanoo.
Aihe on jo aika vanha, joten et voi enää vastata siihen.