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

    Somma o valore al posto di capcha antispam sul form

    Ciao,

    dove posso trovare un javascript che mi restituisca un submit del form-to-mail solo nel caso in cui in un campo venga digitato un valore predefinito?

    Come si vede su alcuni siti es. 3+4= [inserire valore]

    Grazie
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma sicuro che siano in javascript? Normalmente i "bot" che spamanno o che infestano i guestbook non hanno il javascript attivo, per questo capcha è lato server, comunque se vuoi operare lato client:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
    <html>
    <head>
    <title>test</title> 
    <script type="text/javascript">
    //al caricamento della pagina parte la funzione 
    window.onload=function(){
    //imposto il pulsante invio disabilitato
    document.getElementById('send').setAttribute('disabled','disabled');
    //azzero il campo inserimento risultato
    document.getElementById("sommacodice").value='';
    //array totale codici che devo essere in decimali
    var risultati = new Array()
    risultati[0] = 40
    risultati[1] = 14
    risultati[2] = 11
    risultati[3] = 28
    risultati[4] = 17
    risultati[5] = 10
    //array che mostra le operazioni la somma espressa in decimali
    var codici = new Array()
    codici[0] = "8 x 5"
    codici[1] = "6 + 8"
    codici[2] = "4 + 7"
    codici[3] = "7 x 4"
    codici[4] = "22 - 5"
    codici[5] = "6 + 4"
    //randomizzo i codici se si aggiungono delle array va modificato il numero finale di moltiplicazione
    var codrandom = Math.round(Math.random()*5)
    //mostro l'operazione
    document.getElementById("cod").innerHTML=codici[codrandom]
    //imposto il risultato nel campo nascosto
    document.getElementById("codkey").value=risultati[codrandom]
    }
    </script>
    </head>
    <body>
    <div id="codice">Scrivi la somma di > <span id="cod"></span>
    </div><input name="codkey" id="codkey" type="hidden" value="" /><input name="sommacodice" id="sommacodice" type="text" onkeyup="if(this.value.length > 1 && this.value ==  document.getElementById('codkey').value){document.getElementById('send').removeAttribute('disabled')}else{document.getElementById('send').setAttribute('disabled','disabled')}" /><input name="invia" type="button" value="spedisci" id="send" disabled="disabled" />
    </body>
    </html>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie!

    Una cosa ancora più semplice come inviare il modulo solo se in un campo c'è scritto "pomodoro"?
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    scusami però, un controllo così fatto in javascript non ha quasi nessuna efficacia
    un bot quando accede alla pagina di invio form non lo fa come un normale utente e javascript non viene eseguito.

    In realta il risultato dell'operazione dev'essere posto preventivamente in sessione per poi essere controllato con il valore passato in post, ma questo esula dal javascript. Se non fai questo passaggio, la protezione è pressochè inutile.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da fcaldera
    scusami però, un controllo così fatto in javascript non ha quasi nessuna efficacia
    un bot quando accede alla pagina di invio form non lo fa come un normale utente e javascript non viene eseguito.

    In realta il risultato dell'operazione dev'essere posto preventivamente in sessione per poi essere controllato con il valore passato in post, ma questo esula dal javascript. Se non fai questo passaggio, la protezione è pressochè inutile.
    proprio perchè non è umano, non è in grado di rispondere ad una domanda logica

    io propongo una domanda e una risposta... in sessione lato server o tramite cookie ti conservi il risultato e fai un controllo di parità
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.