Jednoduché počítadlo návštěv bez využití databáze co lze v PHP vytvořit.
<?php
// umístění souboru s počtem návštěv
$soubor = "pocitadlo.txt";
$pocitadlo = 0;
// pokud soubor existuje tak načte uložné číslo a přičte k němu 1
if (File_Exists($soubor)) {
$polePocitadlo = file($soubor);
$pocitadlo = $polePocitadlo[0] + 1;
$fp = fopen( $soubor,"w+");
FPutS($fp,$pocitadlo);
fclose($fp);
}
// jinak soubor vytvoří a zapíše do něj 1
else {
$pocitadlo = 1;
$fp = fopen($soubor,"w");
FPutS($fp,$pocitadlo);
fclose($fp);
}
// vypíše hodnotu
echo $pocitadlo;
?>
Předchozí řešení má ale dva zásadní problémy:
První problém se dá vyřešit jednoduše kontrolou zda hodnota ze souboru je číslo. Pro druhý problém existuje několik řešení, každé má své výhody a nevýhody. Pro následující příklad jsem zvolil řešení za pomocí Cookies. Nevýhodou toho řešení je, že návštěvník může mít cookies vypnuté a kontrola tak nebude fungovat.
<?php
// umístění souboru s počtem návštěv
$soubor = "pocitadlo.txt";
// název cookie
$cookie = "pocitadlo";
// číslo které se zobrazí pokud stav nepůjde načíst ze soboru
$pocitadlo = 911;
// zjistí zda soubor existuje
if (File_Exists($soubor)) {
$polePocitadlo = file($soubor);
// kontrola zda ze souboru načetl číslo
if (is_numeric($polePocitadlo[0])) {
$pocitadlo = $polePocitadlo[0];
// pokud uživatel tuto stránku ještě nenavštívil
if (!$_COOKIE[$cookie]) {
$pocitadlo++;
$fp = fopen($soubor,"w");
FPutS($fp,$pocitadlo);
fclose($fp);
// vytvoří cookie s expirační dobou 3600s tj. 1 hodiny
setcookie($cookie, true, time()+3600);
}
}
}
// jinak soubor vytvoří a zapíše do něj 1
else {
$pocitadlo = 1;
$fp = fopen($soubor,"w");
FPutS($fp,$pocitadlo);
fclose($fp);
}
// vypíše hodnotu
echo $pocitadlo;
?>
copyright 2008 - 2015 DaVee. All rights reserved.