Respecto a la primera pregunta.
tal y como tienes el bucle, le estás diciendo que vaya desde el tamaño de la variable hasta 0. Por lo tanto desde (usuario:demonfire) 'e' hasta 'd'
Para solucionarlo¿?
Podrías invertir el bucle
for($i=0;$i < strlen ($_POST['username']); $i++)
Saludos