Autor Zpráva
RErnst
Profil *
Zdravím,
Chtěl bych se zepta, zda nikdo neví, jak upravit toto, aby se to jednou denně vynulovalo, počítá to zobrazení stránky a zapisuje do hit.txt
Chci, aby mi to o půlnoci vynulovalo a jelo to od nuly..
<?php
        $soubor_s_hity = "./hits/hit.txt";
        $pocet_hitu = file($soubor_s_hity);
        $pocet_hitu[0]++;
        if($zobraz_hity == 1) { echo $pocet_hitu[0]; }
        $otevreny_soubor = fopen($soubor_s_hity, "w");
        fwrite($otevreny_soubor, $pocet_hitu[0]);
        fclose($otevreny_soubor);
?>


Více o programu zde: program
Keeehi
Profil
RErnst:
Co kdyby si to každý den vygenerovalo jiný soubor? Měl by jsi tím vlastně vytvořenou i historii.
RErnst
Profil *
Historii k tomu nepotřebuji a akorát by to postupně plnilo paměť, bude to pro spousty stránek,
Nevíš jak to vynulovat jednou za den?
KGW
Profil
Tak o půlnoci spustit crona.
xmark
Profil
RErnst:
Nevíš jak to vynulovat jednou za den?

Jednoduše. Stačí si pamatovat datum posledního zápisu. Před každým zápisem porovnáš datum a když se neshoduje, hit.txt smažeš.
Přičemž "pamatovat" může mít nejrůznější formu, Jestli máš zvládnutou práci se soubory, tak třeba pomocí souboru.
Keeehi
Profil
<?php
$soubor_s_hity = "./hits/hit-".date("Y-m-d").".txt";
if(file_exists($soubor_s_hity)){
  $pocet=file_get_contents($soubor_s_hity);
  $pocet++;
  file_put_contents($soubor_s_hity,$pocet);
  if($zobraz_hity == 1)
    echo $pocet;
}
else{
  foreach (glob("./hits/hit-????-??-??.txt") as $filename)
    unlink($filename);
  file_put_contents($soubor_s_hity,1);
}
?>
RErnst
Profil *
Ddíky, zkusím a napíšu, jak to dopadlo :)
RErnst
Profil *
Parádně to funguje, jen ještě poslední věc, nevíte, jak tam udělat ochranu, aby se to od 1 člověka přičetlo jen jednou za minutu třeba?
Keeehi
Profil
RErnst:
Na to by bylo lepší už použít databázi. Bude se s tím mnohem lehčeji pracovat.
RErnst
Profil *
a poradíš jak prosím?
Keeehi
Profil
RErnst:
Můžeš začít třeba s hledáním fráze "počítadlo php mysql".
RErnst
Profil *
a nemohl bys to alespoň nějak nastínit, nebo lépe poradit jak to udeělat bez mysql
Keeehi
Profil
RErnst:
Musíte si ukládat IP adresu a čas a potom porovnávat, zda už daný čas uběhl. To kam si to uložíte (soubor/databáze) je jen na vás, avšak pokud použijete databázi, bude ta kontrola uplynulého času velmi jednoduchá.
RErnst
Profil *
Ale já nevím jak to udělat.
Keeehi
Profil
Co je potřeba udělat jsem Vám poradil. Pokud nevíte co s tím, máte 3 možnosti: podívat se po hotovém řešení, naučit se programovat (popř. se zdokonalit) a nebo si to nechat od někoho udělat.

Pokud se chcete učit, do začátku Vám bude stačit tento seriál.
Rernst
Profil *
Ok, díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: