Salve a tutti.
Sto realizzando un form di registrazione nel quale tramite AJAX voglio verificare che l'email inserita dall'utente non risulti già registrata.
Per farlo ho utilizzato i seguenti sorgenti:
All'interno del form:
Script ajaxcodice:<input type="email" name="email" pattern="[a-z0-9._-]+@[a-z0-9.-_]+\.[a-z]{2,3}$" title="Indirizzo email non valido." maxlength="255" onblur="emailGiaInUso(this.value);" required />
Script email_esistente.php che interroga il dbcodice:function emailGiaInUso(email) { function assegnaXMLHttpRequest() { var XHR = null, browserUtente = navigator.userAgent.toUpperCase(); if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object") XHR = new XMLHttpRequest(); else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) { if(browserUtente.indexOf("MSIE 5") < 0) XHR = new ActiveXObject("Msxml2.XMLHTTP"); else XHR = new ActiveXObject("Microsoft.XMLHTTP"); } return XHR; } myRequest = assegnaXMLHttpRequest(); if( myRequest ) { myRequest.open("POST","email_esistente.php", true); myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded"); //myRequest.setRequestHeader("connection", "close"); alert("Readystate prima di send: " +myRequest.readyState); alert("Status prima di send: " +myRequest.status); myRequest.send("email="+email); //fa passare $_POST['regione']=valore al file carica_regione.php alert("Readystate post send: " +myRequest.readyState); alert("Status post send: " +myRequest.status); if(myRequest.readyState==4 && myRequest.status==200) { /* CODICE ANCORA DA SCRIVERE */ } } }
Il problema nasce dal fatto che la richiesta, anche dopo il send, resti in readystate 1 (stato di open) e in status 0, stato che evidentemente segnala un qualche errore a cui non riesco a risalire.codice:<?php if( isset($_POST['email']) ) { include_once("db.php"); $pst = $dbCon->prepare("SELECT * FROM utenti WHERE email = ?"); // variabili per la sostituzione dei placeholder $pst->bind_param('s', $email); // variabili per l’esecuzione $email = $_POST['email']; // esecuzione dell’istruzione $pst->execute(); // chiusura dello statement $pst->close(); } ?>

Rispondi quotando
