Direi che alcuni controlli sono alquanto esagerati, specie quelli della funzione containsSQL()
Stando così le cose se come username voglio mettere ORLANDO, ho violato 2 delle regole, c'è un OR e un AND, quindi non mi fa registrare.
Ti basta non permettere gli spazi nella username e nella password per stare a posto, perché al massimo uno potrebbe mettere del codice SQL, ma senza spazi va in errore, ad esempio
SELECT*FROMtablella
e questo non funziona.