Нужно проверять, что поля существуют. Даже если в html-коде ты задал конкретную форму, это не гарантирует, что пользователь или злоумышленник не отправит на сервер запрос, не содержащий нужных полей или содержащий совсем другие поля. Потому проверку на сервере в любом случае нужно делать. А касательно паролей, хэшируй их функцией password_hash, проверяй функцией password_verify.
Обычно подобные этой ошибки -- от непонимания того, что должно быть в результате. От этого очень зависит тот код, который вы пишете. Как только вы поняли, к чему идёт процесс, то есть о результате, всё станет намного проще.