Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Impedire una doppia votazione entro le 24 ore.

    Ho cercato in search e faq ma non ho trovato (o non vi sono riuscito) quanto mi occorre.
    Uso un'applicazione Top Sites in Asp base. Funziona tutto ma, praticamente, l'utente che voglia votare un sito, lo può fare un numero indefinito di volte.
    Come potrei evitare che un visitatore qualsiasi che intenda votare (quindi non necessariamente esistente in un database) non sia in grado di farlo più di una volta entro le 24 ore? Grazie.

  2. #2
    se non lo vuoi obbligare a registrarsi puoi usare un cookie, ma lui può sempre cancellarlo e rivotare.
    in alternativa (o in aggiunta) puoi salvarti data, ora e ip del votante, e controllare se riprova a votare nelle 24h successive, ma con gli ip dinamici ovviamente la cosa non è sicura. La cosa migliore è far votare solo gli utenti registrati

    xxx

  3. #3
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    95
    Vediamo un pò.

    Per un sondaggio base dovresti utilizzare l'indirizzo IP della macchina che si collega al tuo sito e la data del voto.

    Poi basta che confronti se l'IP che si collega al tuo sito ha già votato (semplice SELECT nel DB):

    1) Se non trova record visualizzi il sondaggio
    2) Lo trova ma la data non è antecedente al giorno (l'utente ha già votato)
    3) Lo trova e la data è antecedente al giorno, visualizzi il sondaggio (l'utente non ha votato questo giorno)

    Penso che questa sia la cosa più semplice

  4. #4
    Originariamente inviato da forzaferrari
    Vediamo un pò.

    Per un sondaggio base dovresti utilizzare l'indirizzo IP della macchina che si collega al tuo sito e la data del voto.

    Poi basta che confronti se l'IP che si collega al tuo sito ha già votato (semplice SELECT nel DB):

    1) Se non trova record visualizzi il sondaggio
    2) Lo trova ma la data non è antecedente al giorno (l'utente ha già votato)
    3) Lo trova e la data è antecedente al giorno, visualizzi il sondaggio (l'utente non ha votato questo giorno)

    Penso che questa sia la cosa più semplice
    E se è un IP dinamico e dopo 2 ore io mi connetto con l'Ip di uno che ha già votato?
    L'ipotesi più valorizzabile sono come dice Alethesnake i cookie.

  5. #5
    Innanzi tutto ringrazio tutti per le sollecite e professionali rispote, ambedue, peraltro, più che valide.
    Malgrado il rischio dell'IP dinamico, penso tuttavia che adotterò quella di forzaferrari dal momento che, per diverse ragioni, non intendo limitare il voto agli iscritti.
    In sostanza (scusate se abuso della vostra disponibilità) penserei di fare, sinteticamente, così:

    UserIP=Request.ServerVariables("REMOTE_ADDR")

    e poi il controllo di questo tipo:

    If request ("IP") = UserIP or Date() = Request ("Data") then
    Response.write "Non puoi votare più di una volta al giorno"
    else
    faccio l'update di Ip e di Data.

    Grazie ancora e, se avete tempo, segnalatemi se ho detto stupidaggini .

  6. #6
    l'ip lo devi comunque salvare in un db, in una variabile application (scelta più elaborata) o dove ti pare, e poi controllare al momento del voto se è già presente.
    io continuo a consigliarti di utilizzare un cookie, che peraltro ti semplifica la vita:

    codice:
    if Request.cookie("nomeCookie") = true then
        Response.write ("spiacente, hai già votato")
        Response.end
    else
        Response.cookie("nomeCookie") = true
        Response.cookie("nomeCookie").Expires = dateadd("h", 24, now)
    end
    xxx

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se da un lato hai il problema dell'ip dinamico assegnato ad altre ersone dall'altra hai il problema dell'ip fisso a disposizione di infinite persone...
    Chi lavora in grandi aziende esce con un solo IP. Quindi su 1000 persone solo 1 potrà votare...

    Roby

  8. #8
    Ringrazio tutti indistintamente per i validi consigli.
    Ho adottato la soluzione di Alethesnake; è vero che anche per i cookies esistono degli escamotage....però pazienza, si tratta di un sito amatoriale. Alla prossima.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.