58 messaggi dal 06 settembre 2002
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?
3.122 messaggi dal 16 maggio 2002
Memorizza nella tabella dei voti l'indirizzo IP del votante e la data del voto (senza l'ora) e mettili in chiave assieme.
Poi esegui anche dei controlli via sw in modo da non andare a scrivere sul db se il record già esiste.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
58 messaggi dal 06 settembre 2002
Innanzi tutto grazie per la sollecita e professionale risposta..
In sostanza (scusa se abuso della tua 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.

Se hai tempo, dimmi se ho detto stupidaggini
3.122 messaggi dal 16 maggio 2002
Io farei un'altra cosa. Prima di tutto mettere una chiave sui due campi IP e DATA, per farlo basta eseguire una query del tipo
ALTER TABLE tabellaVoti
ADD CONSTRAINT IPDATA UNIQUE(IP, DATA)

(penso che vada bene, sono un po' arrugginito con queste query di modifica della struttura  )

Poi esegui il controllo via sw:
IP = Request.ServerVariables("REMOTE_ADDR")
DATA = Date()
sql = "SELECT ORA FROM tabellaVoti WHERE IP='" & ip & "' AND DATA='" & DATA & "'"
Set rs = conn.Execute(sql)
if not rs.EOF then
Response.Write "Oggi hai già votato alle ore " & rs("ORA")
else
' permetti il voto
end if

Il codice sql va aggiustato per la data in dipendenza dal DBMS usato (io ti ho fatto un esempio che va bene per mySQL.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
2.584 messaggi dal 14 maggio 2001
Aggiungo solo una cosa alle osservazioni di Raynor...
L'indirizzo Ip è dinamico e quindi ogni volta che un utente chiude la connessione e la riapre sarà "un nuovo utente"...

Purtroppo questo non puoi evitarlo a meno di far prima registrare gli utenti e poi farli votare...
58 messaggi dal 06 settembre 2002
Ringrazio ancora Raynor e mi accingo a provare quanto da lui proposto.
E' vero anche quanto dice seoman, soltanto che, per comprensibili ragioni non intendo richiedere ad ogni utente che voglia votare una iscrizione.
Quanto meno eviterò che non voti indefinite volte senza uscire.
Non so quale altro escamotage vi sarebbe...
61 messaggi dal 23 giugno 2004
Perché non usi un cookie?
58 messaggi dal 06 settembre 2002
Infatti ho risolto con i cookies, anche se, come sicuramente a voi noto, ci sono escamotage per girare l'ostacolo. Pazienza. Grazie a tutti.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.