Где ошибка в скрипте авторизации?
А зачем вы пытаете смешивать PDO и mysql_ функции?
И по какому принципу вы выставляете отступ у строк? Зачем они так странно и непредсказуемо прыгают?
Какое ООП, вы о чем? Повсюду mysql_* функции.
md5 выкиньте. password_hash
htmlspecialchars к чему? mysql_real_escape_string тоже в мусорку. PDO сам эскейпит когда подставляет переменную на место ?Edit:
mysql/mysqli ничего общего с PDO не имеют.