Как мне реализовать сеансы входа в систему?
Аутентификация и управление сессиями - это две разные вещи, хотя они тесно связаны друг с другом, похоже, вы говорите и об авторизации.
Если аутентификация прошла успешно, сгенерируйте длинную случайную буквенно-цифровую строку.
Почему? PHP уже генерирует случайный идентификатор (идентификатор сеанса). Если вы хотите провести различие между аутентифицированными / неаутентифицированными пользователями и / или определить, кому принадлежит текущий сеанс, просто сохраните имя пользователя / идентификатор пользователя в сеансе.
ввод пароля пользователя в переменную $ _SESSION
Зачем вам это нужно - после аутентификации пользователя вам больше не нужно использовать пароль.
сверяет имя пользователя и строку $ _SESSION с теми, которые хранятся в MySQL
Почему? Как изменить данные сеанса иначе , чем через ваш код? Если вы подозреваете, что ваш серверный код может быть подделан, то не имеет значения, что вы делаете, система будет небезопасна.
Когда пользователь явно выходит из системы
... вы явно уничтожаете сеанс. Вот и все.
Когда вы удаляете избыточности из вашего предложения, нет необходимости убирать после неявного выхода из системы.
Кстати: существует ряд проблем безопасности, которые вы не рассмотрели в своем предложении, в частности, восстановление идентификатора сеанса после попытки аутентификации.