problema validazione form con ajax e jquery

processore

Utente Attivo
11 Ott 2012
51
0
0
salve.
qualche mese fa avevo fatto una pagina di registrazione con convalida form con ajax e jquery e tutto funzionava bene.
ieri sera vado a fare una registrazione e non funzionava piu niente.
nel senso che se inserisco nel campo username solo una lettera mi esce l'errore che devo inserire almeno 4 lettere e fin qui tutto bene , pero poi se inserisco 4 lettere o piu di 4 rimane l'errore che che devo inserire 4 lettere, dopo una mattinata che ci sbatto la testa ho visto che l'errore me lo da solo nei campi dove uso pure ajax, tipo mi da errore il campo username perche uso ajax per controllare se quel nome utente e gia presente nel db.
togliendo il controllo ajax tutto funziona.


questa e la pagina di registrazione

PHP:
 <form  action="funzioni/registra1.php" method="post" id="form_register">
            
            <table>
            	<tr>
                	<td colspan="2" class="errore">
                    
                    	 <?php 
									
									if(isset ($_GET['err'])){
										
										if(($_GET['err']== 1)){
										echo "Inserire tutti i dati ";
										}
										else if($_GET['err']== 2){
										echo "nome utente o indirizzo email sono gia esistenti ";
										}
									}
								?>
                    </td>
                </tr>    
                <tr>
                	<td colspan="2">
                    	Paese/Provincia<br />
						<select name="paese" >
                            <option value="Italia">Italia</option>
</select>
            		</td>
                </tr>
                <tr>
                	<td width="29%">
                    	Nome<br />
                        <input name="nome" type="text" />
                    </td>
                    <td>
                    	Cognome<br />
                        <input name="cognome" type="text" />
                    </td>
                </tr>
                <tr>
                	<td colspan="2">
                    	Indirizzo<br />
                        <input name="indirizzo" type="text" />
                    </td>
                </tr>
                <tr>
                	<td>
                    	CAP<br />
                        <input name="cap" type="text" />
                    </td>
                    <td>
                    	Citta<br />
                        <input name="citta" type="text" />
                    </td>
                </tr>
                <tr>
                	<td colspan="2">
                    	Provincia di residenza<br />
                        <select name="provincia">
                            <option value="AG">Agrigento</option>
                            <option value="AL">Alessandria</option>
                            <option value="AN">Ancona</option>
                            <option value="AO">Aosta</option>
                            <option value="AR">Arezzo</option>
                            <option value="AP">Ascoli Piceno</option>
                            <option value="AT">Asti</option>
                            <option value="AV">Avellino</option>
                            <option value="BA">Bari</option>
                            <option value="BT">Barletta-Andria-Trani</option>
                            <option value="BL">Belluno</option>
                            <option value="BN">Benevento</option>
                            <option value="BG">Bergamo</option>
                            <option value="BI">Biella</option>
                            <option value="BO">Bologna</option>
                            <option value="BZ">Bolzano</option>
                            <option value="BS">Brescia</option>
                            <option value="BR">Brindisi</option>
                            <option value="CA">Cagliari</option>
                            <option value="CL">Caltanissetta</option>
                            <option value="CB">Campobasso</option>
                            <option value="CI">Carbonia-Iglesias</option>
                            <option value="CE">Caserta</option>
                            <option value="CT">Catania</option>
                            <option value="CZ">Catanzaro</option>
                            <option value="CH">Chieti</option>
                            <option value="CO">Como</option>
                            <option value="CS">Cosenza</option>
                            <option value="CR">Cremona</option>
                            <option value="KR">Crotone</option>
                            <option value="CN">Cuneo</option>
                            <option value="EN">Enna</option>
                            <option value="FM">Fermo</option>
                            <option value="FE">Ferrara</option>
                            <option value="FI">Firenze</option>
                            <option value="FG">Foggia</option>
                            <option value="FO">Forlì - Cesena</option>
                            <option value="FR">Frosinone</option>
                            <option value="GE">Genova</option>
                            <option value="GO">Gorizia</option>
                            <option value="GR">Grosseto</option>
                            <option value="IM">Imperia</option>
                            <option value="IS">Isernia</option>
                            <option value="SP">La Spezia</option>
                            <option value="AQ">L'Aquila</option>
                            <option value="LT">Latina</option>
                            <option value="LE">Lecce</option>
                            <option value="LC">Lecco</option>
                            <option value="LI">Livorno</option>
                            <option value="LO">Lodi</option>
                            <option value="LU">Lucca</option>
                            <option value="MC">Macerata</option>
                            <option value="MN">Mantova</option>
                            <option value="MS">Massa Carrara</option>
                            <option value="MT">Matera</option>
                            <option value="MD">Medio Campidano</option>
                            <option value="ME">Messina</option>
                            <option value="MI">Milano</option>
                            <option value="MO">Modena</option>
                            <option value="MB">Monza e della Brianza</option>
                            <option value="NA">Napoli</option>
                            <option value="NO">Novara</option>
                            <option value="NU">Nuoro</option>
                            <option value="OG">Ogliastra</option>
                            <option value="OT">Olbia-Tempio</option>
                            <option value="OR">Oristano</option>
                            <option value="PD">Padova</option>
                            <option value="PA">Palermo</option>
                            <option value="PR">Parma</option>
                            <option value="PV">Pavia</option>
                            <option value="PG">Perugia</option>
                            <option value="PS">Pesaro</option>
                            <option value="PE">Pescara</option>
                            <option value="PC">Piacenza</option>
                            <option value="PI">Pisa</option>
                            <option value="PT">Pistoia</option>
                            <option value="PN">Pordenone</option>
                            <option value="PZ">Potenza</option>
                            <option value="PO">Prato</option>
                            <option value="RG">Ragusa</option>
                            <option value="RA">Ravenna</option>
                            <option value="RC">Reggio Calabria</option>
                            <option value="RE">Reggio Emilia</option>
                            <option value="RI">Rieti</option>
                            <option value="RN">Rimini</option>
                            <option value="RM">Roma</option>
                            <option value="RO">Rovigo</option>
                            <option value="SA">Salerno</option>
                            <option value="SS">Sassari</option>
                            <option value="SV">Savona</option>
                            <option value="SI">Siena</option>
                            <option value="SR">Siracusa</option>
                            <option value="SO">Sondrio</option>
                            <option value="TA">Taranto</option>
                            <option value="TE">Teramo</option>
                            <option value="TR">Terni</option>
                            <option value="TO">Torino</option>
                            <option value="TP">Trapani</option>
                            <option value="TN">Trento</option>
                            <option value="TV">Treviso</option>
                            <option value="TS">Trieste</option>
                            <option value="UD">Udine</option>
                            <option value="VA">Varese</option>
                            <option value="VE">Venezia</option>
                            <option value="VB">Verbania-Cusio-Ossola</option>
                            <option value="VC">Vercelli</option>
                            <option value="VR">Verona</option>
                            <option value="VV">Vibo Valentia</option>
                            <option value="VI">Vicenza</option>
                            <option value="VT">Viterbo</option>
                        </select>  
                    </td>
                </tr>
                <tr>
                	<td colspan="2" >
                    	Indirizzo email<br />
                        <input name="email" type="text" size="49" id="reg_email" />
                    </td>
                </tr>
                <tr>
                	<td colspan="2" >
                    	Numero di telefono<br />
                        <input name="tel" type="text"  />
                    </td>
                </tr>
            </table>
                
                
                <br /><br /><b>Crea l'ID utente e la password</b> &nbsp <span>Tutti i campi sono obligatori</span>
            <table> 
            	<tr>
                	<td colspan="2" class="errore">
                    	 <?php 
									
									if(isset ($_GET['err'])){
										
										if(($_GET['err']== 3)){
										echo "Le password non corrispondono ";
										}
										
									}
								?>
                    </td>
                </tr>           
                <tr>
                	<td colspan="2">
                    	<label for="reg_user">ID utente eBay<br /></label>
                    	
                        <input name="username" type="text" id="reg_user" />
                    </td>
                </tr>
                <tr>
                	<td colspan="2">
                    	Password<br />
                        <input name="pass1" type="password" id="reg_pass1" />
                    </td>
                </tr>
                <tr>
                	<td colspan="2">
                    	Conferma la password<br />
                        <input name="pass2" type="password" id="reg_pass2" />
                    </td>
                </tr>
                <tr>
                	<td colspan="2">
                    	Domanda segreta<br />
                        <select name="domanda">
                        	<option value="0" selected="selected">Scegli una delle domande suggerite di seguito</option>
                            <option value="Come si chiama la strada in cui sei cresciuto?">Come si chiama la strada in cui sei cresciuto?</option>
                            <option value="Qual è il cognome da nubile della tua nonna materna?">Qual è il cognome da nubile della tua nonna materna?</option>
                            <option value="Qual è il cognome del tuo primo ragazzo o della tua prima ragazza?">Qual è il cognome del tuo primo ragazzo o della tua prima ragazza?</option>
                            <option value="Qual è il nome della tua prima scuola?">Qual è il nome della tua prima scuola?</option>
                            <option value="Qual è il nome del tuo animale domestico?">Qual è il nome del tuo animale domestico?</option>
                    </td>
                </tr>
                <tr>
                	<td colspan="2">
                    	Rispondi<br />
                        <input name="risposta" type="text"  />
                    </td>
                </tr>
                <tr>
<input type="submit" name="register" value="registrati" id="reg_submit" />
                    </td>
                </tr>
            
            </table>
            </form>


Codice:
$(document).ready(function()
{
	// my method for validate username
	$.validator.addMethod("username_regex", function(value, element) { 
		return this.optional(element) || /^[a-z0-9\.\-_]{3,30}$/i.test(value); 
		}, "Please choise a username with only a-z 0-9.");
	
	$.validator.addMethod("tel_regex", function(value, element) { 
		return this.optional(element) || /^[0-9]{1,30}$/i.test(value); 
		});
		
	$("#form_register").validate(
	{
        rules:{
		'nome':{
			required: true,
			},
		'cognome':{
			required: true,
			},
		'indirizzo':{
			required: true,
			},
		'cap':{
			required: true,
			},
		'citta':{
			required: true,
			},
		'tel':{
			required: true,
			tel_regex:true,
			},
		'risposta':{
			required: true,
			},							
		'username':{
			required: true,
			minlength: 3,
			username_regex: true,
			remote:{
				url: "validatorAJAX.php",
				type: "post"
				}
			},
		'email':{
			required: true,
			email: true,
			
			},
		'pass1':{
			required: true,
			minlength: 8
			},
		'pass2':{
			equalTo: '#reg_pass1'
			}
		},
        messages:{
		'nome':{
			required: "Il campo nome e obbligatorio!",
			},
		'cognome':{
			required: "Il campo cognome e obbligatorio!",
			},
		'indirizzo':{
			required: "Il campo indirizzo e obbligatorio!",
			},
		'cap':{
			required: "Il campo cap e obbligatorio!",
			},
		'citta':{
			required: "Il campo citta e obbligatorio!",
			},
		'tel':{
			required: "Il campo telefono e obbligatorio!",
			tel_regex:"inserire un numero valido",
			},
		'risposta':{
			required: "Il campo risposta e obbligatorio!",
			},			
		'username':{
			required: "Il campo utente e obbligatorio!",
			minlength: "Scegli un username di almeno 4 lettere!",
			username_regex: "Hai utilizzato caratteri non validi. Sono consentiti solo lettere numeri!",
			
			},
		'email':{
			required: "Il campo email e obbligatorio!",
			email: "Inserisci un valido indirizzo email!",
			
			},
		'pass1':{
			required: "Il campo password e obbligatorio!",
			minlength: "Inserisci una password di almeno 8 caratteri!"
			},
		'pass2':{
			equalTo: "Le due password non coincidono!"
			}
		}
	});
});



PHP:
<?php
// connessione al db
include "connessione.php";

// funzione per verificare l'esistenza dell'username
function isset_username($username){
	$username = trim($username);
	$query = "SELECT COUNT(*) AS num FROM utenti WHERE utente='" .mysql_real_escape_string($username). "'";
	$result = mysql_query($query) or die(mysql_error());
	$row = mysql_fetch_array($result);
	if($row['num']>=1){
		return TRUE; // true se utente esiste
		}
	else{
		return FALSE;
		}
	}

// funzione per verificare l'esistenza dell'email
function isset_email($email){
	$email = trim($email);
	$query = "SELECT COUNT(*) AS num FROM utenti WHERE email='" .mysql_real_escape_string($email). "'";
	$result = mysql_query($query) or die(mysql_error());
	$row = mysql_fetch_array($result);
	if($row['num']>=1){
		return TRUE; // true se utente esiste
		}
	else{
		return FALSE;
		}
	}

/*
PROCESSIAMO LA RICHIESTA AJAX
*/
if(isset($_POST['username'])){
	if(!isset_username($_POST['username'])){
		echo 'true';
		}
	else{
		echo 'false';
		}
	}
else if(isset($_POST['email'])){
	if(!isset_email($_POST['email'])){
		echo 'true';
		}
	else{
		echo 'false';
		}
	}
?>


cosa ce di sbagliato... non capisco perche prima andava e ora non funziona piu
 
Ultima modifica di un moderatore:

Discussioni simili