Скажу сразу, пхп почти забыл.
Но сделал бы я иначе, и через ФВ хотя бы. Хотя тут зависит от проекта. Если это был бы код ФБ, то все очень плохо. А если сайта с фотками твоих любимых кошей - и так сойдет.
Прям в коде не разбирался, но что бросается мне в глаза:
мд5, отсутствие ООП, неадаптивность(mysql), устаревшие функции(mysql_query), сомнительная проверка данных, отсутствие подготовленных запросов в БД, что за лимит 1(то есть можно создать копию чужого аккаунта? )
if($active == $sql['login']){
$namecookie = 'login';
}elseif($active == $sql['email']){
$namecookie = 'email';
}
Зачем это делать? Можно же с помощью 1/0 указать. Или более красиво. ИМХО
Почему проверка на пустые значения происходит после обращения к БД и указания названия куки? То есть с помощью чтения кук я могу шерстить базу данных на существования пользователя с таким ником или почтой? Кука же создаться, если совпадет. А доступа не будет, да.
Почему хэш пароля в куке хранится - табу. Почему не айди сессии или токен?
Почему переадресация на главную страницу, а не предыдущую страницу перед требование авторизации?