[PHP] Conteggio click

  • Creatore Discussione Creatore Discussione Oswold
  • Data di inizio Data di inizio

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Salve a tutti!

Non ho un vero e proprio problema con un codice, direi che più che altro è un problema concettuale, vi spiego la mia problematica.

Ho la seguente sezione di codice:

PHP:
if(isset($_POST['url'])) {
    $uid = $_POST['uid'];
    $click = mysqli_query($connessione,"UPDATE utenti SET view_caricati    = (view_caricati + 1) WHERE id = '".$uid."'");
    $destinazione = $_POST['url_file'];
    header("Location: $destinazione");
    exit;
}

In sintesi il codice deve incrementare un record all'interno della tabella utenti quando viene cliccato un pulsante. Essendo il numero di click conteggiati per un fattore economico devo essere sicuro (o quasi...) che i click non vengano fatti dallo stesso utente, più e più volte per far accrescere il contatore e guadagnare di più "truffando".

Ho pensato a una cosa del genere:

Salvo l'indirizzo IP di chi clicca sul bottone attraverso la funzione php

PHP:
$ip = $_SERVER['REMOTE_ADDR'];

Dopodiché salvo la variabile "$ip" all'interno di un file ".txt" ed ogni qualvolta che un utente clicca sul pulsante interessato confronto l'indirizzo IP utilizzato con quelli presenti nel foglio ".txt".

Naturalmente, aggiungerei all'interno del foglio ".txt" tutti gli indirizzi IP proxy maggiormente utilizzati per evitare eventuali "furbetti".

Secondo voi potrebbe funzionare? Esiste una metodologia migliore? Avete qualche consiglio da darmi o potete indirizzarmi verso qualche altra strada?

Grazie in anticipo!
 
Ciao, io farei una tabella wiew a parte dove memorizzi l'idutente, l'ip, l'agent, la data e tutto quello che puoi recuperare dalla variabile $_SERVER. Prima di ogni click (UPDATE ) fai una query sulla tabella wiew ed effettui tutti i controlli che possono esserti utili.
 
Ciao, io farei una tabella wiew a parte dove memorizzi l'idutente, l'ip, l'agent, la data e tutto quello che puoi recuperare dalla variabile $_SERVER. Prima di ogni click (UPDATE ) fai una query sulla tabella wiew ed effettui tutti i controlli che possono esserti utili.
Secondo te qual'è la possibilità di trovare click falsi al pulsante con tale metodologia? Purtroppo non posso creare ulteriori tabelle in quanto i pulsanti sarebbero molti (dell'ordine dei 2000) e già sul database sono presenti molte tabelle, di conseguenza credo sia più efficiente andare a creare dei file di testo contenuti all'interno del server.
 
Basterebbe una sola tabella. Puoi controllare ad esempio che non ci siano click consecutivi dello stesso ip
PHP:
$query = "SELECT count(*) as tot FROM view WHERE ip = " . $_SERVER['REMOTE_ADDR'] . " && TIMESTAMPDIFF(SECOND ,data, NOW()) < 20";
in base a quello che memorizzi in tabella puoi fare qualsiasi controllo
 
Ultima modifica:
  • Like
Reactions: Oswold
Basterebbe una sola tabella. Puoi controllare ad esempio che non ci siano click consecutivi dello stesso ip
PHP:
$query = "SELECT count(*) as tot FROM view WHERE ip = " . $_SERVER['REMOTE_ADDR'] . " && TIMESTAMPDIFF(SECOND ,data, NOW()) < 20";
in base a quello che memorizzi in tabella puoi fare qualsiasi controllo

Grazie mille per le dritte!
 

Discussioni simili