• Как выполнить авторизацию в аккаунта при помощи RedBeanPHP?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если подумать, то почти все вопросы новичков вида "Как сделать ххх" не несут никакого смысла.
    Потому что если открыть сам вопрос, то по коду будет совершенно очевидно, что человек и так прекрасно знает, "как сделать это ххх". А вопрос у него - "как разобраться, почему оно не работает?" или - в более общем виде - "научите меня программировать".

    Ну ОК, давайте учиться.

    Главное в программировании - это делать всё по порядку.

    У вас в текущей задаче участвует примерно миллион разных действий: html форма, код, который получает из неё данные, база данных, код, который ищет данные из формы в базе.
    Если вы ещё не освоились со всеми этими элементами, то не надо их писать все подряд.
    Надо делать по очереди, проверяя каждый этап.
    И вопрос задавать не про весь код целиком, про который вам никто никогда не скажет, почему он не работает, а про конкретный этап.

    В данном случае, если у вас база данных не находит пользователя по емейлу, надо сделать что?
    Правильно - исключить все посторонние этапы. То есть написать емейл руками в скрипте и проверить - находит ли его запрос.
    Если не находит - то здесь же, в скрипте, вывести все емейлы, и посмотреть глазками, а есть ли он вообще в базе данных?
    Если нет - то вот она, причина. Найдена самостоятельно за 5 секунд без привлечения мирового сообщества.
    Если есть, но всё равно не находит - то ищем непечатные символы и опечатки. например с помощью функции urlencode(). И исправляем то что она нашла. Русскую букву c или лишний пробел.

    Если написанный руками емейл находит, а пришедший из формы нет, то надо сделать что?
    Правильно - посмотреть на него глазками. А похож ли он на тот который руками написан? Если похож, то снова urlencode. Если не похож - то разбираться со своей формой.

    Если всё равно не работает, то надо исключить другие посторонние факторы, например библиотеки, особенно такие кривые, как redbean. И отлаживаться на чистом PDO.

    Всё это очень простые логические действия, доступные даже неспециалисту.
    Просто надо не смотреть на свой код с горестным выражением лица, и гадать почему он не работает. И не искать какой-то другой код, который обязательно заработает. А работать над своим кодом. Выполнять простые логичные действия.

    Отдельно хочу заметить, что все описанные действия может сделать только сам программист. Обращаться за ними к посторонним людям бессмысленно. У них нету вашей базы данных, вашей формы, вашего кода. Все эти вещи можно сделать только самостоятельно. И именно это и является программированием. А не вот это вот "всё указываю верно".
    Ответ написан
    4 комментария