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

    aiuto pagina con codice captcha

    ciao ho un problema di spam sul mio piccolo sito di annunci.
    quindi ho pensato di provare a mettere il codice ottico.
    mi manca qualcosa pero'...

    in pratica io adesso ho una pagina INSERISCI.ASP
    si compilano i campi e li inserisce in un database access

    la pagina qui sopra rimanda a INSERITO.ASP
    dove cè scritto che è stato inserito (ma potrei toglierla se rende la cosa piu facile)

    ecco quindi cosa ho fatto.

    in inserisci.asp ho messo questo controllo:
    <%
    Function CAPTCHA()
    Dim caratteri, codice
    caratteri = ""
    caratteri = caratteri & "0123456789"
    caratteri = caratteri & "abcdefghijklmnopqrstuvwxyz"
    caratteri = caratteri & "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Randomize()
    Do Until Len(codice) = 7
    carattere = Int((Len(caratteri) * Rnd()))
    codice = codice & Mid(caratteri, carattere, 1)
    Loop
    CAPTCHA = codice
    End Function
    Session("captcha") = CAPTCHA()
    %>

    <form method="post" action="inserito.asp">
    Codice di sucirezza da copiare


    <%=Session("captcha")%>
    <input type="text" name="captcha">
    <input type="submit" value="Conferma">
    </form>


    dentro la pagina INSERITO.ASP ho messo:

    <%
    Dim captcha
    captcha = Request.Form("captcha")
    %>

    <%
    If Len(captcha) < 7 Or captcha <> Session("captcha") Then
    Response.Write "Codice di controllo errato :-("
    Else
    Response.Write "Operazione eseguida con successo :-)"
    End If
    %>

    diciamo che il controllo va ma ho un piccolo enorme problema....
    che la prima pagina mi inserisce i dati sul database lo stesso...
    mentre nella seconda vedo se è giusto o no il codice ottico.
    qualcuno saprebbe aiutarmi per favore?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    L'inserimento lo devi fare SOLO DOPO aver verificato che il codice di controllo sia corretto!

    Roby

  3. #3
    perdonami, quindi cosa dovrei fare scusa?
    in caso prova a spiegarmelo a parole e vedo se riesco a farlo.

    io in pratica volevo, se possibile, che si controllasse il codice gia con il click del invio form.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il controllo lo devi fare lato server quindi devi inviare i campi del form ed il captcha e poi controllare tutto.

    Roby

  5. #5
    mi sa che non ho capito bene cosa fare.
    non è che mi daresti una mano o spiegare meglio?
    dove sbaglio il codice quindi?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Usa questo:
    http://www.imente.it/scripts.asp?id=6

    Inserisci nel db solo alla fine.

    Roby

  7. #7
    ho provato anche quello ma è lo stesso discorso
    inserisce sempre il campo lo stesso.

    non è che potete spiegarmi bene cosa devo fare o come indirizzare le pagine?

    il mio pulsante submit inserisce nel db i dati, dovrei cambiare funzione?
    cosa?

  8. #8
    ciao,anche io avrei dei problemi nell'implementazione del applicazione sul mio guestbook.qualcuno più preparato di noi potrebbe darci una mano? Grazie mille,ciao ciao

    Allora,io ho seguto le indicazioni dal blog di Imente,ma non riesco a farlo funzionare,come al solito non riesco a capire dove devo inserire lo script. ecco il codice della mia pagina

    <%
    messaggio = Replace(Replace(Request.Form("messaggio"), chr(13), "
    ", 1) , "'", "′")
    autore = Replace(Request.Form("autore"), "'", "′")
    email = Replace(Request.Form("email"), "'", "′")
    nospam = Replace(Request.Form("nospam"), "'", "′")
    data = Date()
    IF autore = "" or Instr(email, "@") = 0 or Instr(email, ".") = 0 or nospam <> "" then
    <%
    Response.Redirect "guestbook_compila.asp"
    %>
    <%
    else
    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/xxxx.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open url_DB
    ' APRE LA CONNESSIONE AL DATABASE
    Set RecSet = Server.CreateObject("ADODB.Recordset")
    SQL = "SELECT * FROM book"
    RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
    Recset.Addnew
    RecSet("messaggio") = messaggio
    RecSet("autore") = autore
    RecSet("email") = email
    RecSet("nospam") = nospam
    RecSet("data") = data
    RecSet.Update
    RecSet.Close
    Conn.Close
    Response.Redirect "guestbook_read.asp"
    end if
    %>

    ########### ECCO IL CODICE DA IMPLEMENTARE NELLA PAGINA,con le spiegazioni prese direttamente da imente -->

    INSERIRE PRIMA dell'inserimento nel db (o comunque del controllo dell'utilizzo dei dati del form) queste poche linee

    <%
    '**** START WBSECURITY ************************************************** **
    dim wbs_securitycode, wbs_currentsecuritycode, wbs_isvalid
    wbs_securitycode = request.form("securitycode")
    wbs_currentsecuritycode = getSecurityCode(session("wbsecurity-generator"))
    session("wbsecurity-generator") = getSecurityCodeGenerator()
    wbs_isvalid = (wbs_currentsecuritycode = wbs_securitycode)
    '**** END WBSECURITY ************************************************** ****
    %>

    infine il vostro discriminante sarà
    WBS_ISVALID

    if wbs_isvalid then
    'codice corretto
    SQL = "..."
    conn.execute SQL
    else
    'codice non corretto
    response.write "attenzione, il codice di controllo non è stato inserito correttamente
    end if
    ############################


    help.....
    >
    Draco Dormiens Numquam Titillandos
    <

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 © 2026 vBulletin Solutions, Inc. All rights reserved.