ugrás a tartalomhoz

Számláló

tiny · 2005. Ápr. 6. (Sze), 14.16
Sziasztok!
Már 2 napja keresem a hibát az alábbi programban, de nem találok rá megoldást. A számláló a hits könyvtárban a mai dátum.php (2005_04_06.php" fájlban tárolja az adatokat azért, hogy ne kelljen ellenőrizni, hogy eltelt e egy nap, s nullázás, plusz egyéb fölösleges dolgok. Mivel az egész csupán 1 fájl, ezért egy form magát hívja meg, s ha a stat változó deklarálva van, akkor a következő kód lép működésbe:

function getstat($y,$m,$d)
{
$all=0;
If ($y == 0 && $m == 0 && $d == 0)
{
$dir=opendir(hits);
while ( false !== ($file = readdir($dir)))
{
If ($file !== "." && $file !== ".." && is_file($file))
{
$a=file($file);
$a[0]=settype(rtrim($a[0]), "int");
$all=$all + $a[0];
}
}
}
else
{
If ($y !== 0 && $m == 0 && $d == 0)
{
$dir=opendir(hits);
while ( false !== ($file = readdir($dir)))
{
If ($file !== "." && $file !== ".." && is_file($file) && eregi($y, $file))
{
$a=file($file);
$a[0]=settype(rtrim($a[0]), "int");
$all=$all + $a[0];
}
}
}
else
{
If ($y !== 0 && $m !== 0 && $d == 0)
{
$dir=opendir(hits);
while ( false !== ($file = readdir($dir)))
{
If ($file !== "." && $file !== ".." && is_file($file) && eregi($y . '_' . $m, $file))
{
$a=file($file);
$a[0]=settype(rtrim($a[0]), "int");
$all=$all + $a[0];
}
}
}
else
{
If ($y !== 0 && $m !== 0 && $d !== 0)
{
$of=fopen("hits/" . $y . '_' . $m . '_' . $d . '.php',"r");
$all=fgets($of);
fclose($of);
}
else
{
echo"Error, mistake in the input data";
}
}
}
}
echo("Visitors: " . $all);
return($all);
}
A $y az év a $m a hónap, a $d a nap. Úgy akartam megcsinálni, hogy ha valamit kihagyok, akkor azt úgy vegye, hogy bármelyik lehet. Pl: nincs megadva nap, akkor az egész havi látogatókat számolja. Ha nincs deklarálva, akkor 0-t adok értékül. Ha minden adatot beírok, akkor nincs gond a programmal, de ha egyet kihagyok, nem működik. Ha tudna valaki segíteni, annak nagyon örülnék. Előre is köszi:
Tiny
 
1

undefined!=0

VBala · 2005. Ápr. 6. (Sze), 15.01
Ha nem adsz egy változónak értéket, akkor az nem ugyanaz, mintha 0-t adnál neki. Függvényváltozóknak is lehet kezdőértéket adni:
function getstat($y=0,$m=0,$d=0)
2

Már írtam...

tiny · 2005. Ápr. 6. (Sze), 17.27
Mint azt a forráskód alatt is írtam, a functionon kívül a nem deklarált változóknak 0 értéket adtam...
Mr.Tiny :: MRT Site
3

opendir, elseif, colorer

attlad · 2005. Ápr. 6. (Sze), 18.07
$dir=opendir(hits);
helyett
$dir=opendir('hits');
(ha hits nem egy konstans)

meg szerintem jobban járnál az elseif használatával az egymásba ágyazott if-ek helyett

(ha használod a colorer BBCode jelölőt a code helyett, akkor könnyíted a válaszolok dolgát)

Attila
4

Thx

tiny · 2005. Ápr. 6. (Sze), 21.17
Köszi, ezt nem vettem észre, de szerintem nem ez befolyásolja a program futását, mivel eddig is kiolvasta... Azért köszi.
Mr.Tiny :: MRT Site