Unmantained Guida Contatore di accessi senza database

Una guida contrassegnata come Unmantained contiene informazioni su un argomento obsoleto, non più utile o files non aggiornati da parte del creatore.
Stato
Discussione chiusa ad ulteriori risposte.
Salve a tutti
Quello che oggi vi presento è una semplicissima funzione scritta in PHP che richiede in ingresso il navigatore (vedremo in seguito) e che restituisce il numero di utenti totali che hanno visitato il sito. Ecco il codice:



Codice:
[B][I]01.function contatoreVisite($dirFile) {[/I][/B]
[B][I]02.# CONFIGURAZIONE[/I][/B]
[B][I]03.# nome del file txt:[/I][/B]
[B][I]04.$nomeFile = "conta.txt";[/I][/B]
[B][I]05.# SCRIPT[/I][/B]
[B][I]06.# apriamo il file con memorizzato il numero di accessi[/I][/B]
[B][I]07.$file = @fopen($dirFile."/".$nomeFile ,"r+ ");[/I][/B]
[B][I]08.# salviamo il contenuto del file[/I][/B]
[B][I]09.$contatore = @fread($file, filesize($dirFile."/".$nomeFile));[/I][/B]
[B][I]10.# chiudiamo il file precedentemente aperto[/I][/B]
[B][I]11.@fclose($file);[/I][/B]
[B][I]12.# incremento il contatore[/I][/B]
[B][I]13.$contatore++;[/I][/B]
[B][I]14.# apro il file per salvare il nuovo valore[/I][/B]
[B][I]15.$file = fopen($dirFile."/".$nomeFile ,"w+ ");[/I][/B]
[B][I]16.# salvo il valore all'interno del file[/I][/B]
[B][I]17.fputs($file, $contatore);[/I][/B]
[B][I]18.# chiudo il file aperto[/I][/B]
[B][I]19.fclose($file);[/I][/B]
[B][I]20.# ritorno il valore del contatore incrementato[/I][/B]
[B][I]21.return $contatore;[/I][/B]
[B][I]22.}[/I][/B]



Come funziona?
Semplice. Nella prima riga della funzione assegniamo alla variabile nomeFile il valore conta.txt. Successivamente useremo questo file per leggere e salvare il numero di utenti che visitano il sito.
Nella seconda riga di codice troviamo la funzione fopen() che permette di aprire il file (nel nostro caso conta.txt) e successivamente, nella terza riga, di salvare il contenuto nella variabile contatore; dopo di che chiudiamo il collegamento con il file conta.txt.
Ora sommiamo 1 alla variabile contatore usando l’operatore di incremento ++.
Non ci resta che salvare la variabile contatore nel file conta.txt; per fare ciò è necessario aprire il file con i permessi di scrittura (w+), con la funzione fputs() sovrascriviamo il vecchio valore con quello nuovo e poi restituiamo il valore di $contatore alla funzione.

Vediamo ora a cosa server la variabile dirFile; supponiamo di avere questa struttura nel nostro sito:

/php
/php/index.php
index.php
funzioni.php
conta.txt

In questo caso di studio la nostra funzione è stata salvata nel file funzioni.php; successivamente questo file viene incluso sia in index.php che nel file index.php che si trova nella cartella /php. Ora accediamo alla pagina index.php nella root del nostro sito per 9 volte. Giustamente il nostro contatore ci segnala il numero esatto di visite. Ora provate ad entrare nella cartella /php e a eseguire il file index.php. Alla prima esecuzione vi viene restituito il valore 1 vero? Il motivo è che nella cartella /php non esiste nessun file conta.txt. Se fare 5 reflash della pagina vi accorgerete che il numero totale di visite è pari a 5. Ora facendo due conti, 9 visite più 5 dovrebbe dare 14. Andate nella root del sito ed eseguite index.php! La pagina vi restituirà sicuramente 10! Ora se entrate nella cartella /php vi accorgerete che il PHP ha creato un nuovo file conta.txt. In poche parole eseguendo il file index.php nella cartella /php, la funzione ha cercato il file conta.txt nella stessa cartella dove viene eseguito lo script e non trovandolo ne ha creato uno.
Per ovviare a questo problema si è scelto di passare alla funzione il livello in cui si trova il file conta.txt. In questo caso nel file index.php che si trova nella root del sito, richiameremo la funzione in questo modo:
echo contatoreVisite(“.”);
mentre nel file index.php che si trova nella cartella /php richiameremo la funzione in questo modo:
contatoreVisite(“..”);

Spero che sia utile per tutti coloro che in questo tempo me lo hanno chiesto è una cosa banale ma utile.....

Sei un epic fail! Non sai neanche copiare del testo da un syntaxhighlighter <.< (Di un sito ovviamente)
 
Ma guarda, su html.it c'era lo stesso script preciso ed identico.
Come mai qui ce n'è uno uguale? Non è che forse loro hanno copiato da te??
Però in quel forum, l'hanno postato nel 2005, sicuramente avranno la macchina del tempo e te l'avranno rubato, che leechoni di merd*.
 
Ma guarda, su html.it c'era lo stesso script preciso ed identico.
Come mai qui ce n'è uno uguale? Non è che forse loro hanno copiato da te??
Però in quel forum, l'hanno postato nel 2005, sicuramente avranno la macchina del tempo e te l'avranno rubato, che leechoni di merd*.
Sicuramente, lui è un hacker ;)
 
La cosa che mi fa incazzar*e scusate i termini e che lui poi va in giro a offendere dicendo alle gente che sono dei leechoni
quano lui primo non ha nemmeno il nome creato da lui e poi copia tutto da tutti
 
Stefano perchè ti devi rovinare con certe cazzate?

costa tanto mettere i crediti?
i +1 e like (se è quello il tuo interesse) vengono lo stesso ...anche se non di mano tua hai fatto un favore alla community (per coloro che non sapevano )
 
  • Mi piace
Reazioni: TheMonster871
Stato
Discussione chiusa ad ulteriori risposte.