Вы очень уязвимы для SQL-инъекций, я настоятельно рекомендую вам прочитать немного больше об этой теме и, возможно, переключиться на PDO, если ваш веб-хостинг поддерживает это. Лучший способ остановить SQL-инъекции в PHP
Существует также проблема с файлом cookie, который вы генерируете. Он содержит значения, которые не изменятся, если пользователь не изменит свой пароль. Это означает, что в случае, если злоумышленник получит чей-то cookie-файл, он сможет использовать его неограниченное время. Чтобы предотвратить использование того же файла cookie злоумышленником, можно добавить IP-адрес при создании файла cookie. Вероятно, лучший способ создать cookie-файл - использовать следующий код:
//I assume $row['alt_username'] is a secret key thing?
//It's best to change this value every login
$secretkey=$row['alt_username'];
//Best if your system supports the hash function with sha256
$hashed=hash("sha256", $secretkey."your_salt_here".$_SERVER['REMOTE_ADDR']);
//or else
$string=sha1($secretkey."your_salt_here".$_SERVER['REMOTE_ADDR']);
Кроме того, вы не хотите удваивать хэш, например, соль и имя пользователя, потому что это ограничит возможности хэша и значений имени пользователя (хотя это, вероятно, чисто теоретическая проблема, поскольку хэшировать не часто твоя соль).