[PHP] Dziwny problem z licznikiem.

0

Oto mój kod licznika na zliczanie odwiedzin w ciągu jednego DNIA:
(plik stan_d.n w pierwszej linii zawiera aktualny dzień, w drugiej linii- stan licznka na aktualny dzień):

<script language=php>
$file=fopen("./php/stan_d.n", "r+"); /* otwiera plik /
flock($file, 1); /
blokuje plik /
$data=date("d");
$temp=fgets($file, 10);
$temp2=fgets($file, 10);
flock($file, 3); /
odblokowuje plik /
fclose($file); /
zamyka plik */

IF ($temp=$data)
{
$temp2++;
$file=fopen("./php/stan_d.n", "w");
flock($file, 1); /* blokuje plik /
fwrite($file, "$data\n");
fwrite($file, $temp2);
flock($file, 3); /
odblokowuje plik /
fclose($file); /
zamyka plik /
echo($temp2);
}
ELSE
{
$file=fopen("./php/stan_d.n", "w");
fwrite($file, "$data\n");
fwrite($file,"1");
flock($file, 3); /
odblokowuje plik /
fclose($file); /
zamyka plik */
echo("1");
}

</script>

I zawsze podwyższa wartość licznka, nawet jeśli będzie inny dzień - dlaczego??

0

Tutaj masz kodzik... musisz zmienic tylko sciezke do pliku...

[code]
[/code]

0

I zawsze podwyższa wartość licznka, nawet jeśli będzie inny dzień - dlaczego??

popełniłeś w swoim kodzie dwa błędy:

w instrukcji IF miałęś przypisanie = a nie porównanie ==

ale i tak by nie zadziałało bo przy pobieraniu dnia z pliku

$temp=fgets($file, 10);

zapomniałęś o tym że oprócz numerka będzie jeszcze \r\n
(znaki końca lini char 13 char 10)
które trzeba wywalić z $temp

a ja tak sobie pomyślałęm żyby ten problem rozwiązać
szybciej i taki ci kod ukleiłem :-D

$dane = split(" ", trim(@join("", @file("./php/stan_d.n"))));
$dane[0] == date("d") ? $dane[1]++ : $dane = array(date("d"),1);
$fp = fopen("./php/stan_d.n", "w");
flock($fp, 2);
fputs($fp, join(" ", $dane));
flock($fp, 3);
fclose($fp);
echo $dane[1];

1 użytkowników online, w tym zalogowanych: 0, gości: 1