Salve a tutti, ho cominciato da poco a scrivere il mio primo sito e non ho ancora molta esperienza, avendo ancora 15 anni, e oggi mi sono imbattuto in un problema che non riesco a risolvere: per effettuare la registrazione ho creato all'interno di un db due tabelle: una serve per gli utenti temporanei finchè non confermano l'email("utenti_temp") e l'altra invece per gli utenti che l'hanno già confermata("utenti"). Ovviamente per evitare che più utenti abbiano gli stessi username o gli stessi indirizzi e-mail ho inserito dei controlli che svolgono perfettamente il loro lavoro solamente nel database che ospita gli utenti che hanno già confermato la loro mail; mentre per la taballa degli utenti "temporanei" i controlli non funzionano. Di seguito posto il codice:
$controlname = mysql_query("SELECT username FROM utenti WHERE username = '$username'");
$controlname_temp = mysql_query("SELECT username FROM utenti_temp WHERE username = '$username'");
$controlemail = mysql_query("SELECT email FROM utenti WHERE email = '$email'");
$controlemail_temp = mysql_query("SELECT email FROM utenti_temp WHERE email = '$email'");
$countuser = mysql_num_rows($controlname);
$countuser_temp = mysql_num_rows(controlname_temp);
$countemail = mysql_num_rows($controlemail);
$countemail_temp = mysql_num_rows($controlemail_temp);
//se l'username o la password esiste allora mysql_num_rows restituirà valore 1 o più altrimenti 0
if($countuser || $countuser_temp > 1){
echo "l'username scelto è già in uso";
}elseif($countemail || $countemail_temp > 1){
echo "Questa mail è già stata utilizzata";
}else{
$inviautenti = mysql_query("INSERT INTO utenti_temp (codiceconferma , username , password , email) VALUES('$confirm_code', '$username', '$password' , '$email')");
Se nel form inserisco username o email che esistono nella tabella utenti allora mi da errore, ma se esistono nella tabella utenti_temp tutto va a buon fine(cosa che non dovrebbe accadere).
P.s. se ho fatto un errore gigantesco non prendetemi troppo in giro...
$controlname = mysql_query("SELECT username FROM utenti WHERE username = '$username'");
$controlname_temp = mysql_query("SELECT username FROM utenti_temp WHERE username = '$username'");
$controlemail = mysql_query("SELECT email FROM utenti WHERE email = '$email'");
$controlemail_temp = mysql_query("SELECT email FROM utenti_temp WHERE email = '$email'");
$countuser = mysql_num_rows($controlname);
$countuser_temp = mysql_num_rows(controlname_temp);
$countemail = mysql_num_rows($controlemail);
$countemail_temp = mysql_num_rows($controlemail_temp);
//se l'username o la password esiste allora mysql_num_rows restituirà valore 1 o più altrimenti 0
if($countuser || $countuser_temp > 1){
echo "l'username scelto è già in uso";
}elseif($countemail || $countemail_temp > 1){
echo "Questa mail è già stata utilizzata";
}else{
$inviautenti = mysql_query("INSERT INTO utenti_temp (codiceconferma , username , password , email) VALUES('$confirm_code', '$username', '$password' , '$email')");
Se nel form inserisco username o email che esistono nella tabella utenti allora mi da errore, ma se esistono nella tabella utenti_temp tutto va a buon fine(cosa che non dovrebbe accadere).
P.s. se ho fatto un errore gigantesco non prendetemi troppo in giro...