Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    19

    Impedire voto multilplo in un sondaggio

    Ciao a tutti,
    ho creato (o meglio copiato) di recente un sondaggio.
    Il problema è che una persona può votare, chiudere il browser, riconnettersi alla pagina del sondaggio e rivotare...
    Come posso fare in modo che una persona possa votare SOLAMENTE una volta?
    E' possibile farlo modificando qualcosa nel codice del file Vota.asp sottoriportato?
    Grazie!

    <%@LANGUAGE = JScript%>
    <%

    var vota = new String(Request.Form("vota"));

    var controlla = Request.Cookies("CookieSondaggio");

    var scadenza = new Date();
    Response.Cookies("CookieSondaggio") = scadenza.toLocaleString();

    if (controlla != "") {
    Response.Redirect("errore.htm");
    }
    else {
    var Cn = new ActiveXObject("ADODB.Connection");
    var Sc = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("sondaggio.mdb");
    Cn.Open(Sc);
    Cn.Execute("INSERT INTO voti (voto) VALUES ('" + vota + "')");
    Cn.Close();
    Response.Redirect("sondaggio.asp");
    }

    %>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    19
    Non c'è proprio nessuno che sa darmi una mano?
    Grazie!

  3. #3
    codice:
     var controlla = Request.Cookies("CookieSondaggio");
    se l'utente ha i cookie disabilitati o cancella il cookie sul pc, può rivotare quante volte vuole

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    19
    Quindi che consiglio mi dai per fare in modo che uno possa votare solo una volta?

  5. #5
    Originariamente inviato da Febe85
    Quindi che consiglio mi dai per fare in modo che uno possa votare solo una volta?
    cookie + ip salvato in database
    oppure
    email salvata in database con data ultima votazione (resta cmq sempre valido l'uso del cookie)

    poi non so ora onn mi viene in mente altro

  6. #6
    se il voto lo può dare chiunque (non registrato al sito) allora mi sa tanto che santino ha ragione... puoi solo cercare di rendergli la vita difficile, registrando non solo il voto, ma anche l'IP e la DATA.
    con i cookie comunque scoraggi subito i meno esperti!
    <head> Nothing! </head>
    <body> Open your mind and close your ass !!! </body>

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    19
    Grazie, lo so che forse vi chiedo troppo ma più o meno come devo fare?
    Scusatemi ma non ne capisco molto di Access e codici!

    Devo creare una tabella in Access con quanti campi e di che tipo?
    E per il codice?

    Non odiatemi!

  8. #8
    Allora:
    crea due campi in una tabella che dovranno contenere l'indirizzo IP del visitatore e la data dell'inserimento del voto, di tipo testo.
    per recuperare i valori da inserire nel DB segui questo esempio:
    codice:
    <%
    '***************************************************
    ' recuperi l'indirizzo IP
    '***************************************************
    IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    if IP="" or IP="unknown" then 
    	IP = Request.ServerVariables("REMOTE_ADDR") 
    end if
    
    '***************************************************
    ' recuperi la DATA gg/mm/aaaa
    '***************************************************
    data = date()
    %>
    la variabile IP contiene l'indirizzo IP del visitatore e la variabile DATA la data dell'inserimento.
    prima di ogni voto, fai un controllo con i campi recuperati e quelli presenti nel DB tipo:
    se IP e DATA già presenti, ti rimando ad un messaggio d'errore, altrimenti ti registro.
    per i COOKIE vai all'indirizzo: http://asp.html.it/script/lista/31/cookies/

    spero di essere stato chiaro, caso contrario continua a postare ok?
    ciauz!
    <head> Nothing! </head>
    <body> Open your mind and close your ass !!! </body>

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    19
    Innanzitutto ti ringrazio tantissimo!

    Ho un database (sondaggio.mbd), al suo interno ci sono 4 tabelle:
    - domande
    - titolo
    - voti
    - controllo (2 campi di tipo testo: IP (chiave primaria), data)

    Il file Vota.asp è il seguente:

    <%@LANGUAGE = JScript%>
    <%

    var vota = new String(Request.Form("vota"));

    var controlla = Request.Cookies("CookieSondaggio");

    var scadenza = new Date();
    Response.Cookies("CookieSondaggio") = scadenza.toLocaleString();

    if (controlla != "") {
    Response.Redirect("errore.htm");
    }
    else {
    var Cn = new ActiveXObject("ADODB.Connection");
    var Sc = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("sondaggio.mdb");
    Cn.Open(Sc);
    Cn.Execute("INSERT INTO voti (voto) VALUES ('" + vota + "')");
    Cn.Close();
    Response.Redirect("sondaggio.asp");
    }

    %>



    Il codice che mi hai dato devo solo copia-incollarlo?
    Se sì dove?

  10. #10
    non puoi fare copia e incolla!
    ti ho segnalato un esempio in Vbscript e invece il tuo script è scritto in Jscript!
    Converti lo script che ti ho segnalato e inseriscilo all'inizio del codice ASP, subito dopo ci metti il controllo (if ecc.... altrimenti messaggio di errore)

    nel DB voti, inserisci i campi IP e DATA tipo TESTO.
    dovrebbe andare bene!

    Ciao!
    <head> Nothing! </head>
    <body> Open your mind and close your ass !!! </body>

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.