Pagina 1 di 1

contatore visite in PHP

Inviato: 14/11/2016, 9:00
da gameplay_extreme
questo semplice contatore visite resta sempre fermo a 1, sapreste aiutarmi a sistemarlo ?

<?php
$myFile = "counter.txt";
$fh = fopen($myFile, 'r+') or die("can't open file");
$num = fread($fh);
$num = $num+1;
fwrite($fh,$num);
fclose($fh);
echo " Questa pagina è stata visualizzata $num volte"

?>

dettagli:
il file counters.txt contiene 1

Re: contatore visite in PHP

Inviato: 14/11/2016, 9:20
da doom13
Forse num te lo considera stringa e non somma 1?

PS
Non conosco bene il php.

Re: contatore visite in PHP

Inviato: 14/11/2016, 11:33
da gameplay_extreme
grazie per la risposta,

comunque se fosse come dici tu l'intreprete avrebbe dato errore poiché il "+" è SOLO somma matematica in PHP

edit:
counters.txt da 0 a 1 passa senza problemi poi però non va oltre, non capisco il motivo

Re: contatore visite in PHP

Inviato: 14/11/2016, 11:48
da SP Games
Prova cosi :

Codice: Seleziona tutto

$num = 0;

if (file_exists('counter.txt')) {
  $fl = fopen('counter.txt',r);
  $num = fread($fl, filesize('counter.txt'));
  fclose($fl);
}

$fl = fopen('counter.txt',w);
fwrite($fl, $num+1);
fclose($fl);
A occhio sembra mancare il numero di bytes da leggere, quindi quel fread restituisce sempre zero.

Re: contatore visite in PHP

Inviato: 14/11/2016, 12:43
da gameplay_extreme
grazie,

ho risolto così:

<?php
$myFile = "counter.txt";
$fh = fopen($myFile, 'r') or die("can't open file");
$num = fread($fh,40);
fclose($fh);
$num = $num+1;
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh,$num);
fclose($fh);
echo " Questa pagina è stata visualizzata $num volte"

?>

Re: contatore visite in PHP

Inviato: 14/11/2016, 14:23
da civic71
Interessanti entrambi i codici , ma testandoli ho notato che quello di SP Game riporta il penultimo numero , questo solo perché $num+1 avviene nel salvataggio.

Re: contatore visite in PHP

Inviato: 14/11/2016, 15:32
da SP Games
civic71 ha scritto:Interessanti entrambi i codici , ma testandoli ho notato che quello di SP Game riporta il penultimo numero , questo solo perché $num+1 avviene nel salvataggio.
Vero civic, quel codice faceva solo la parte di lettura e scrittura senza preoccuparsi della visualizzazione.
Effettivamente nel codice originale c'era un "echo $num+1".
Piu pulita come soluzione è sicuramente quella di sommare 1 a $num e poi sia salvare sul file che mostrare la variabile a video.