Scusa ma mi sembra piuttosto ovvio, se tu fai questo confronto
$mail != $row['mail'] e dai un errore nel caso non siano uguali è scontato
che darà errore con piu utenti, perchè l'e-mail è uguale solamente ad un utente
in tutto il database (o almeno si spera)
Comunque bastava fare un semplice select nel database con i rispettivi campi
ed un conto dei rows per fare il login invece di quel pasticcio![]()