CodeInside
@CodeInside

Как оформить активацию аккаунта?

Делаю регистрацию таким образом:
1) пользователь отправляет свои данные на сервер (в том числе и мыло)
2) эти данные записываются в тиблицу reg (список ещё непроверенных аккаунтов)
3) на мыло высылается код активации аккаунта и юзера перенаправляют на страничку ввода кода
Вот думаю что делать если в таблице reg куча строк с одинаковой почтой. Брать последнюю запись и проверять только её? Если да, то можно как-то на mysql делать поиск строки с конца? Или лучше при добавлении строки в таблицу запоминать её id, а дальше передавать до самой проверки кода (почты)?
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 4
Neuroware
@Neuroware
Программист в свободное от работы время
по идее нужно завести в таблице код отдельным полем и искать только по коду, в таком случае совершенно не важно сколько там e-mail'ов, а вот наличие e-mail нужно проверять при регистрации, в той таблице где хранится список проверенных аккаунтов, хотя особого смысла делить это на 2 таблицы из за 1 флага я не вижу.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Подтверждение почты сделайте через линк проверки почтового ящика:
пока по линку не кликнут (из письма) - не добавляйте запись в таблицу.
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
where `email`="user@mail.ru" and `code`="qwerty"
очевидно же.
Совсем хорошо что бы не замусоривать таблицу email, вынести code в отдельную.

Кучи строк с одинаковым email быть не должно, т.к поле email без вариантов уникальное.

PS А вообще подумайте насколько реально нужны все эти подтверждения. 21й век на дворе.
Ответ написан
Изначально подход не верный.
Пользователь отправляет форму, данные записываются допустим в таблицу users, список ещё непроверенных аккаунтов и т.д это лишнее, у записи в таблице с пользователями добавляем поле со статусом активации, по умолчанию оно 0, при успешной активации 1,
ну и при регистрации делаем проверку на уникальность email в таблице
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы