Buongiorno a tutti,
ho un problema con la validazione dei dati inseriti nel form per la registrazione: ho utilizzato Jquery validation per controllare se i campi ineriti non siano vuoti, e ho utilizzato Ajax per controllare che l'username e la email inseriti non siano già registrati.
Quando utilizzavo Altervista come servizio di hosting non ho avuto problemi, funzionava tutto. Adesso però ho spostato il mio sito su Aruba e la parte di Ajax non ha più funzionato.
Ho cambiato ovviamente i dati del database e alcune righe di codice, perché su altervista si utilizza la versione 5 di PHP se non erro, mentre su Aruba ho la versione 7, quindi ho cambiato ad esempio "mysql_connect" in "mysqli_connect".
controllo_dati2.js
validatorAJAX.php
Riuscite a dirmi dove sbaglio?
grazie in anticipo
ho un problema con la validazione dei dati inseriti nel form per la registrazione: ho utilizzato Jquery validation per controllare se i campi ineriti non siano vuoti, e ho utilizzato Ajax per controllare che l'username e la email inseriti non siano già registrati.
Quando utilizzavo Altervista come servizio di hosting non ho avuto problemi, funzionava tutto. Adesso però ho spostato il mio sito su Aruba e la parte di Ajax non ha più funzionato.
Ho cambiato ovviamente i dati del database e alcune righe di codice, perché su altervista si utilizza la versione 5 di PHP se non erro, mentre su Aruba ho la versione 7, quindi ho cambiato ad esempio "mysql_connect" in "mysqli_connect".
controllo_dati2.js
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.");
//REGISTRAZIONE
$("#registration_form").validate(
{
rules:{
'nome':{
required: true,
},
'cognome':{
required: true,
},
'username_reg':{
required: true,
minlength: 4,
username_regex: true,
remote:{
url: "../validatorAJAX.php",
type: "post",
contentType : "application / json; charset = utf-8" ,
dataType : "json" ,
data: {username: function(){return $('#username_reg').val()}},
}
},
'email_reg':{
required: true,
email: true,
remote:{
url: "../validatorAJAX.php",
type: "post",
contentType : "application / json; charset = utf-8" ,
dataType : "json" ,
data: {email: function(){return $('#email_reg').val()}},
}
},
'password_reg':{
required: true,
minlength: 8
},
'conferma_pass':{
required: true,
equalTo: "#password_reg"
},
'provincia':{
required: true,
},
'condizioni':{
required: true,
},
},
messages:{
'nome':{
required: "Il campo nome è obbligatorio!",
},
'cognome':{
required: "Il campo cognome è obbligatorio!",
},
'username_reg':{
required: "Il campo username è obbligatorio!",
minlength: "Scegli un username di almeno 4 lettere!",
username_regex: "Hai utilizzato caratteri non validi. Sono consentiti solo lettere numeri!",
remote: "L'username è già utilizzato da un altro utente!"
},
'email_reg':{
required: "Il campo email è obbligatorio!",
email: "Inserisci un valido indirizzo email!",
remote: "L'indirizzo email è già stato registrato!"
},
'password_reg':{
required: "Il campo password è obbligatorio!",
minlength: "Inserisci una password di almeno 8 caratteri!"
},
'conferma_pass':{
required: "Compilare questo campo!",
equalTo: "Le password non corrispondono!"
},
'provincia':{
required: "Scegliere un elemento dall'elenco!",
},
'condizioni':{
required: "Devi accettare le nostre condizioni!",
},
}
});
validatorAJAX.php
PHP:
<?php
include("db_con.php"); // connessione al db
$username=$_POST['username_reg'];
$email=$_POST['email_reg'];
// funzione per verificare l'esistenza dell'username
function isset_username($username){
$username = trim($username);
$query = "SELECT COUNT(*) AS num FROM users WHERE Username='" .mysqli_real_escape_string($username). "'";
$result = mysqli_query($query) or die(mysqli_error());
$row = mysqli_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 users WHERE Email='" .mysqli_real_escape_string($email). "'";
$result = mysqli_query($query) or die(mysqli_error());
$row = mysqli_fetch_array($result);
if($row['num']>=1){
return TRUE; // true se utente esiste
}
else{
return FALSE;
}
}
/*
PROCESSIAMO LA RICHIESTA AJAX
*/
if(isset($username)){
if(!isset_username($username)){
echo 'true';
}
else{
echo 'false';
}
}
else if(isset($email)){
if(!isset_email($email)){
echo 'true';
}
else{
echo 'false';
}
}
?>
Riuscite a dirmi dove sbaglio?
grazie in anticipo