salve,
ho dei problemi a creare una procedura che controlli l'esattezza di un codece captcha:
ho la pagina dei contatti dove c'è un form che al momento del submit fa partire una procedura :
validaform();
questo è il codice js:
in pratica quando incontra una textbox di nome _captcha fa pertire un controllo lato server del codice che dal momento della creazione è stato salvato in una variabile di sessione. il file controllaCaptcha.php semplicemente prende via get il captcha inserito dall'utente e lo controlla con il captdcha presente nella sessione. fino a qui funziona in fatti provo a fare un alert del xmlHttp.responseText e mi scrive "errore" nel caso siano diversi e "ok" nel caso siano uguali. il problema è che anche se inserisco il captcha corretto mi appare l'alert con "Attenzione, codice Captcha errato. Riprovare". e non mi invia l'email.codice:function getXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } function validaform() { var datiEmail=document.forms[0]; var nomeCampo; for (var i=0;i<datiEmail.length;i++) { nomeCampo=controllaCampo(datiEmail[i]); if (!nomeCampo) return false; } } function controllaCampo(dato) { var nome=new String(dato.name); var valore=new String(dato.value); if (nome=="_captcha") { if(!verificaCaptcha(valore)) { alert("Attenzione, codice Captcha errato. Riprovare"); return false; } } if (nome.charAt(0)=="_") { if (valore.length<=2) { alert("Attenzione, compilare tutti i campi obbligatori."); return false } else { return nome.substring(1,nome.length); } } else { return nome; } } function stateChanged() { if(xmlHttp.readyState == 4) { //Stato OK if (xmlHttp.status == 200) { var resp = xmlHttp.responseText; if (resp=="errore") { return false; } } waiting = false; } } function verificaCaptcha(valore) { if (xmlHttp && !waiting) { xmlHttp.open("GET", 'controllaCaptcha.php?cap=' + valore, true); xmlHttp.onreadystatechange = stateChanged; xmlHttp.send(null); waiting = true; } } var xmlHttp = getXmlHttpObject(); var waiting = false;
dov'è l'errore?
mille grazie


Rispondi quotando