$_SESSION['logged_user']->password;
Ого, а я и не знал, что в сессии объекты могут храниться О_о.
Если вы сравниваете нехешированный пароль из input с хешированным паролем из БД, то логично что проверка не пройдёт. Захешируйте пароль из input тем же алгоритмом, что и хеширует пароль перед занесением в БД, а после уже и сравнивайте.
Если честно из вашего кода я вообще не вижу ни переданных данных $_GET/$_POST из input'a, ни работы с БД. Я вижу как вы сравниваете данные из сессии с массивом $data. Какой-то очень интересный у вас механизм.