Originariamente inviato da TrueLies
beh siccome l'utente potrebbe abbandonare la pagina in qualsiasi momento, ti tocca passarli con ajax probabilmente.
Quando un utente fa click su un link tu avvii anche un ajax che passa al server
$id_annuncio
e basta (così velocizzi): si intende con quello che un click è avvenuto e basterà incrementare di 1 il campo apposito nel DB indicizzato da $id_annuncio.
Assicurati ovviamente che l' id annuncio sia numerico (presumo lo sia), con php ad esempio usando is_numeric().
Il problema successivo che incontrerai è decidere se più click dello stesso utente sullo stesso annuncio debbano essere considerati come visualizzazioni (il che può sovraccaricare il server: non so che traffico hai o potresti avere).
Se non lo devono, ti tocca gestire la cosa anche dal lato server (per prudenza), e potresti farlo con una array in sessione dove memorizzi tutti gli $id_annuncio già cliccati: se nella array di sessione (ogni sessione identifica un utente univoco, o almeno... un PC univoco) è presente quell' $id_annuncio, non aggiorni il db.
Oppure puoi decidere di aggiornarlo sempre (specie se pensi di avere molte visite da pc condivisi). In tal caso difenditi, anche sul lato server, da gente che magari si mette a cliccare a ripetizione per spasso: potresti mettere una variabile in sessione che calcola il tempo dell' ultimo click
if sessione_tempo esiste: fai differenza fra tempo attuale e tempo memorizzato
else crea sessione_tempo con tempo attuale
if differenza < 3 secondi, rifiuta update
else effettua update e aggiorna sessione_tempo con tempo attuale
è solo una idea, da testare. 3 secondi parrebbe un tempo ragionevole per individaure click sensati (detesto andare a naso ma diciamo che se uno visualizza qualcosa e non ci sta manco 3 secondi, vuol dire che nemmeno la legge e potrebbe essere un "
joyrider")