Salve a tutti.
Ho creato un form per registrarsi su un sito.
Premendo "invia" do il via a uno script per verificare se il nome o l'email inseriti nei campi non siano già presenti nella tabella; in caso contrario permetto la query INSERT con i dati inseriti nel form.
Codice PHP:
$user=$_POST['user'];
$pswd_db=criptpass($_POST['pswd']);
$email=$_POST['email'];
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$societas=$_POST['societas'];
$query=mysql_query("SELECT * FROM `utenti`WHERE username='$user' OR email='$email'") or die
(mysql_error());// query per verificare l'eventuale esistenza dell'utente nella tabella
$num_rows=mysql_num_rows($query) or die (mysql_error());
echo $num_rows."
";
if($num_rows=='1'){
while($ordina=mysql_fetch_array($query)){
if($ordina['username']==$user AND $ordina['email']!=$email){
echo "username già esistente";
}else if($ordina['username']!=$user AND $ordina['email']==$email){
echo"indirizzo email già utilizzato";
}else{
echo "utente già registrato";
}
}
}else{
$inserisci=mysql_query("INSERT INTO `utenti` (id, email, username, password, nome,
cognome, societas, stato, caso) VALUES (NULL, '$email', '$user', '$pswd_db', '$nome', '$cognome',
'$societas', '0', '12457896')") or die(mysql_error());// query per inserire i valori
}
Il problema è che quando la query di verifica non trova alcuna riga, cioè quando verifico che nella tabella non sono già presenti utenti con lo stesso user o la stessa email, non esegue la query di inserimento.
Ho provato con un po' di controlli e mi sono anche accorto che se il primo controllo è nullo non legge più le variabili $_POST, come se non fossero settate.
Dove sto sbagliando?