Ciao!

Se le condizioni che metti negli if sono quelle da rispettare, la funzione restituisce vero se sono rispettate per cui credo che tu debba fare al contrario:


esempio
Codice PHP:
if (controlla($user)!=1// $user è una stringa di caratteri alfanumerici(no caratteri speciali) di lunghezza min 4
echo = "Stringa non rispetta";

function 
controlla($stringa)
{
if (
preg_match("^([a-z0-9]{4,32})",$stringa))    
return 
1;

circa dovrebbe essere così..
ciao