Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Uniikki kävijälaskuri - Mikähän mättää?

unbound [16.08.2006 17:56:44]

#

Itse olen yrittänyt vääntää tämmosta kävijälaskuria joka laskee uniikit kävijät, mutta tällä tavalla se ei jostain syystä tallenna ip:tä tuonne tiedostoon. Mikähän tässä on?

<?php

$Get_Ip = $_SERVER['REMOTE_ADDR'];
$Ip_File = "uniqueIP.dat";
$Get_IpFile_Contents = file_get_contents($Ip_File);
$Count_IpFile = file($Ip_File);
$Count_IpFile = count($Count_IpFile);


$Open_IpFile_To_Read = fopen($Ip_File, "r") or die("Tiedoston avaus ep&auml;onnistui.");

while(!feof($Open_IpFile_To_Read)) {
    	$Get_Row = fgets($Open_IpFile_To_Read);


		if($Get_Row != $Get_Ip || $Get_Row == "") {
		break;

			$Open_IpFile_To_Write = fopen($Ip_File, "a") or die("Tiedoston avaus ep&auml;onnistui.");
			fwrite($Open_IpFile_To_Write, $Get_Ip."\n") or die("Tiedostoon kirjoittaminen ep&auml;onnistui");
			fclose($Open_IpFile_To_Write);
		}
}

fclose($Open_IpFile_To_Read);

echo $Count_IpFile;
?>

Teuvo Töhvelö [18.08.2006 22:12:51]

#

Näyttäisi siltä, että luet tiedoston file()-funktiolla $Count_IpFile-muuttujaan, muttet sitten käytäkään sitä lukiessasi tietoja. Miksi näin?

Ja jos silmukan sisällä päästään ehtolauseeseen(eli jos IP:t eivät täsmää, tai tiedosto on lopussa), hypätään välittömästi pois koko silmukasta break-lauseella.

Kentti [19.08.2006 10:07:00]

#

Jos virheloissa on "blaa blaa blaa... Permission Denied in..." (Joka ittelläni tulee aina, jos ei oo dokumentin juurihakemistossa ja systeemi tehty tolleen)
Varsinkin, jos tämmöinen virhe täsmää, niin kokeileppa muuttaa tuo

            fwrite($Open_IpFile_To_Write, $Get_Ip."\n") or die("Tiedostoon kirjoittaminen ep&auml;onnistui");
###Tämmöseen
            fwrite($Open_IpFile_To_Write, $Get_Ip."\n");

Ja jos haluut välttämättä jokun selostuksen jos toimii/ei toimi, niin mulla ainakin pitää laittaa näin:

$Write_IpFile = fwrite($Open_IpFile_To_Write, $Get_Ip."\n");

if($Write_IpFile != false) echo "Tiedostoon
                        kirjoittaminen onnistui!";
else echo "Ei onnistuttu kirjoittamaan
          tiedostoon!";

Pitäis toimia, kirjotusvirheitä voi olla, en kokeillu

tsuriga [19.08.2006 13:47:08]

#

Lisäksi on hyvien tapojen mukaista kirjoittaa muuttujat pienellä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta