во-первых, так и надо писать в вопросе сразу
во-вторых, у foreach есть расширенный ситаксис. посмотреть можно там же в дкументации
он не всегда подходит для получения "по номеру", но в данном случае подойдет
alexalexes, ну напиши $stmt->bind_param() в ПДО и посмотри что он тебе напишет. такого метода нет в пдо. ты путаешь с mysqli. А путать не надо
bindparam тоже не нужен
MKE, отличие профессионала в том и состоит, что профессионал видит не только сам текст задачи, но ещё и думает.
И результатом этого процесса является является критическая оценка вопроса. В результате которой неверные условия, озвученные в вопросе, отбрасываются.
В итоге получается ответ, которые решает стоящую перед автором задачу, а не то, автор осилил написать в вопросе.
для пункта 7 надо определиться, что ты хочешь сделать - авторизацию на сессиях или на куках.
сейчас какая-то каша.
я предлагаю для начала сделать на встроенных в РНР сессиях
да, она будет выкидывать через 14 минут неактивности, но для учебного проекта это не беда.
если понадобится, то можно будет добавить запоминание по куке, но потом. пока лучше разобраться тем что есть.
в password_verify нет ничего сложного.
пи регистрации делаешь password_hash
при проверке - password_verify
вот тебе готовый код который его использует
Георгий Котов, в том что ты написал бесмысленный ответ, который автору поможет как неандертальцу микроскоп. Единственное для чего ты его написал - чтобы показать что знаешь одно умное слово. Молодец, мы все в восхищении
в базе сравнение по умолчанию регистронезависимое.
если убрать обезьянью проверку введенного емейла с полученным из базы, то выяснится, что ничего никуда приводить не надо
и в любом случаетебе уже говорили, что у тебя изначально в базе не должно быть никаких запятых, тем более с неуникальными значениями.