Debería verificar y consultar la base de datos en busca de una coincidencia, no bajar los resultados y verificarlos localmente. Dicho esto:
$password = md5($_POST['password']);
Entonces también cambia:
SELECT * FROM users WHERE username='$username' AND password='$password'
Pero también echaría un vistazo al uso de PDO
en lugar de colocar los valores directamente en una consulta SQL. Como mínimo, debería usar mysql_real_escape_string
para evitar ataques de inyección.