Bạn nên kiểm tra và truy vấn cơ sở dữ liệu để tìm sự trùng khớp, không đưa kết quả xuống và kiểm tra chúng cục bộ. Với điều đó đã nói:
$password = md5($_POST['password']);
Sau đó, cũng thay đổi:
SELECT * FROM users WHERE username='$username' AND password='$password'
Nhưng tôi cũng đã xem xét cách sử dụng PDO
thay vì đặt các giá trị trực tiếp trong một truy vấn SQL. Ít nhất thì bạn cũng nên sử dụng mysql_real_escape_string
để tránh các cuộc tấn công tiêm.