Mysql_escape_string jest oznaczona jako deprecated, czyli ma być wycofana i zamiast niej powinno się używać mysql_real_escape_string, ale poza tym masz jeden "mały" błąd... Nie sprawdzasz danych przychodzących z formularza. Strip_tags lub funkcja adekwatnie działająca w takim wypadku to niezbędne minimum. W ten sposób zabezpieczasz się przed wrzuceniem kodu html do pól formularza. Poczytaj artykuły o Cross Site Scripting (CSS, XSS) i wstrzyknięciu kodu (SQL Injection) - czyli innymi słowy bezpieczeństwie formularzy. Tutaj w portalu masz o tym trochę. Na przyszłość radziłbym Ci także używać apostrofu pojedynczego zamiast podwójnego. Jest to szybsze, bo nie uruchamia interpretera PHP szukającego w stringu zmiennych php

Przykład?
$sql = mysql_query("SELECT * FROM kezman WHERE user='$user' AND password='$hashed'");
zamień na
$sql = mysql_query('SELECT * FROM kezman WHERE user=\''.$user.'\' AND password=\''.$hashed.'\'');
Ważne by wiedzieć kiedy i jak chronić te apostrofy by były widziane odpowiednio. Stąd zauważ, że czasem muszę je "escapować". W sumie zastanawiam się czy de facto musze, ponieważ mysql_real_escape powinna otoczyć string apostrofami sama

Ale nigdy nie testowałem