Salve
ho creato un piccolo script php per inserire un indirizzo email che un utente inserisce via browser in un db contenente 2 semplici colonne: id_email che si auto incrementa ed email che contiene l'email inserita dall'utente.
Fin qui tutto bene.
Poi ho cercato di mettere un ciclo if per verificare se l'email inserita già esiste nel database, in caso positivo avverte l'utente ed esce, in caso negativo esegue le istruzioni ed inserisce l'email nel database.
Il problema è che sembra che la verifica non funzioni:
codice:
do {
$mailvalida = $data->query("SELECT * FROM email");
if(mysql_num_rows($mailvalida) > 0){
$mailvalida_obj = $data->estrai($mailvalida);
$mail1 = stripslashes($mailvalida_obj->email);
$mail2 = stripslashes($email);
if ($mail2 = $mail1) {
echo "<center> Mi spiace la tua email sembra già registrata </center>";
break;
}else{
do {
...
$t = "email"; # nome della tabella
$v = array ($email); # valori da inserire
$r = "email"; # campi da popolare
...
$data->inserisci($t,$v,$r);
echo "<center>La tua e-mail e' stata inviata correttamente al seguente indirizzo: ".$email.";</center>";
...
} while ( ... );
break;
}
}else{
break;
}
} while ( mysql_num_rows($mailvalida) > 0 );
In pratica tutto il codice sostituito dai puntini sospensivi e l'inserimento di una nuova email funziona perfettamente ma la prima parte, cioé se viene inserita un'email uguale, no.
In realtà qualsiasi email inserisco mi fa apparire sempre il messaggio di email già inserita.
Potreste aiutarmi a capire dove sbaglio? Il ciclo while do non è adatto? meglio altro? o forse le variabili che contengono le email non sono dello stesso tipo?
sul database la colonna email è di tipo varchar.
Grazie per l'aiuto.