Ho letto velocemente la pagina di autenticazione e ti dico un paio di mie opinioni in prospettiva di ottimizzazione(non è detto che siano corrette e non è detto che siano le uniche, anzi sicuramente c'è molto altro da dire):

1)quello che ha detto ghiaccio non dovrebbe essere verò poichè user a te è il nome utente e non l'userid

2)il fatto che utente e password devono essere comprese tra 3e 15 è un controllo che va fatto in fase di registrazione, non ad ogni login
3)le 2 query
$query = "SELECT user FROM users WHERE user = '$user'";
$result = mysql_query($query,$db);
$query2 = "SELECT pass FROM users WHERE pass = '$pwd'";

fai prima a farne solo 1 select from users where user = .... and pass = ....


4)creando la variabile $html in quel modo tu in OGNI caso stai andando ad assegnare il valore a quella variabile, ma se i dati di login sono errati quella variabile non sarà mai mostrata..
facevi prima a fare semplicemente echo 'form'

5)io non inserisco mai i dati di login al database all'interno di una pagina, creo sempre un file di configurazione e poi lo includo

Mi è balzata all'occhio 1 cosa della pagina di registrazione ma nn ho letto il resto:
1)c'è una xss, quando mostri i dati utente fai htmlentities($user)