View Full Version : contatore accessi in php
texerasmo
05-06-2003, 13:10
Ciao a tutti
Qualcuno di voi potrebbe avere un po' di pazienza e spiegarmi come si fa un contatore di accessi senza che al refresh della pagina si incrementi il suo valore?.
Ho capito che devo utilizzare le session ma non so come sfruttarle. :mc:
Ho creato due script uno che scrive sul file incrementando il valore che legge l'atro che legge solamente il file.
Grazie
@GuyBrush@
05-06-2003, 17:00
guarda... te lo dico in asp... convertirlo in PHP poi è facile...
if session("presente")="" then
-->> l'utente è la prima volta che accede alla pag
else
---> l'utente ha fatto un refresh o un back
session("presente")="CI SONO"
end
capito?
Originally posted by "texerasmo"
Ho creato due script uno che scrive sul file incrementando il valore che legge l'atro che legge solamente il file.
Attenzione alla scrittura sul file !!! Se due utenti leggono os crivono contemporanemente il valore puoi:
- in caso di lettura contemporanea, perdere un conteggio
- in caso di scrittura contemporanea, o perdere uno più conteggi o addirittura ritrovarti un numero inconsistente
Quindi o blocchi il file (e lasci un utente in attesa fino a quando lettura/incremento/scrittura sono finiti...attenzione che questo metodo potrebbe portare ad un'attesa infinita, anche se alquanto improbabile) o usi un DBMS...
texerasmo
12-06-2003, 12:23
Scusa il ritardo della risposta...
ma oggi ho ripreso a navigare..
Quindi è meglio depositare una i dati in un db?
Erasmo
Originally posted by "texerasmo"
Quindi è meglio depositare una i dati in un db?
Sì...credo che sia la cosa migliore...
Ad esempio...in MySQL basterebbe una semplice operazine di aggiornamento...
Ti fai una tabella chiamata Contatori:
CREATE TABLE Contatori
(Contatore VARCHAR(50) NOT NULL,
Valore INT UINSIGNED DEFAULT 0,
PRIMARY KEY(Contatore))
TYPE=MyISAM;
INSERT INTO Contatori VALUES ("Homepage");
Dopo dalla pagina PHP ti fai queste semplici query:
LOCK TABLES Contatori WRITE;
UPDATE Contatori SET Vaore = Valore+1 WHERE Contatore = "Homepage";
UNLOCK TABLES;
Ovviamente è sempre valido il consiglio per la variabile di sessione per evitare che il contatore venga incrementato ad ogni reload...
texerasmo
17-06-2003, 12:44
Grazie :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.