Първо, htmlspecialchars ти е напълно излишно! Защо? Защото юзернейма няма да го вземаш от POST директно, че да хо показваш, защото е глупаво, паролата ще бъде сравнена с хеша от базата-данни и там не те бърка какви хтмл-и е въвел логващия се.
Второ, sql-a за логин не трябва да е така както си написал:
$sql = "SELECT * FROM `".USERS_TABLE
."` WHERE user_name = '$user_name' AND user_pass = '".md5($user_pass)."'"
,
а трябва да е:
$sql = "SELECT user_pass FROM `".USERS_TABLE."` WHERE user_name = '$user_name';"
, защото ти трябва записания хеш за да го провериш с password_verify.
Трето, изнеси си всички проверки и нормализации и валидации във функции, така по-лесно се чете и редактира.
Четвърто, проверявай си, дали правилно си инклуднал файловете и какво получаваш на изхода с var_dump.
Пето,
глупаво е да филтрираш линк до снимка или снимка по този начин.
Шесто, не смесвай PHP код с HTML.
Има още страшно много, но дано си разбрал поне това
