Ciao a tutti,
ho implementato il Re-Captcha su un form, e con il metodo base "paginaConCaptha.php" che passa i valori via POST a "inviaEmail.php" non ci sono problemi, il captcha viene validato e letto correttamente.
Sto ora provando a fare il tutto via Ajax, e sembra che il file PHP non riceva i valori (o Ajax non li spedisca).
Andiamo per gradi:
1 -> Pagina con il form include questo JS (ometto alcuni passaggi credo inutili)
Verificando con Firebug, ho visto che la pagina trasmette correttamente un URL con encodati tutti i valori (name=blabla&mail=blabla@blabla.it&challenge=serie infinita dicodici Di Google&response=il valore della risposta al captcha)codice:(document).ready(function(){ $("#invia").click(function(){ //Recuperiamo tutte le variabili var name = $("#nome").val(); var mail = $("#email").val(); var subject = $("#motivo").val(); var messaggio = $("#messaggio").val(); var challenge = $("#recaptcha_challenge_field").val(); var response = $("#recaptcha_response_field").val(); var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&messaggio=' + encodeURIComponent(messaggio) + '&challenge=' + challenge + '&response=' + response; $("#risposta").css("display", "block"); $("#risposta").css("background-color","#FFFFA0"); $("#risposta").html("Invio del messaggio in corso.."); $("#risposta").fadeIn("slow"); setTimeout("send('"+datastr+"')",2000); }); }); //Creazione della funzione di invio. Si baserà sul nostro file php "mail.php". function send(datastr){ $.ajax({ type: "POST", url: "comandi.php?azione=sendEmail", data: datastr, cache: false, success: function(html){ $("#risposta").fadeIn("slow"); $("#risposta").html(html); $("#risposta").css("background-color","#e1ffc0"); setTimeout('$("#risposta").fadeOut("slow")',2000); } }); }
Veniamo alla pagina che si occupa di ricevere i dati:
Come detto, ajax trasmette ANCHE challenge e response, il PHP non li ricevecodice:case 'sendEmail': echo $_POST["name"]; // <= stampa correttamente il nome passato dal form echo $_POST["challenge"]; <= vuota, non stampa nulla :( echo $_POST["response"]; <= vuota, non stampa nulla :( require_once($percorso_file_assoluto.'recaptchalib.php'); $privatekey = "miaKeyCorretta"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["challenge"], $_POST["response"]); if (!$resp->is_valid) { // What happens when the CAPTCHA was entered incorrectly // ovviamente KO perchè non c'è soluzione :( die ("Il codice antispam inserito non è corretto. Riprova." . "(Errore: " . $resp->error . ")"); } else { echo "ok"; // Your code here to handle a successful verification }mentre riceve le altre variabili concatenate
Grazie in anticipo a chi mi helperà![]()

mentre riceve le altre variabili concatenate
Rispondi quotando

