За последние 24 часа нас посетили 18720 программистов и 1703 робота. Сейчас ищут 953 программиста ...

Организация подтверждения почтового ящика при регистрации

Тема в разделе "Прочие вопросы по PHP", создана пользователем Bezlepkin, 5 сен 2013.

  1. Bezlepkin

    Bezlepkin Активный пользователь

    С нами с:
    22 авг 2012
    Сообщения:
    56
    Симпатии:
    0
    Подскажите, как лучше организовать подтверждение почтового ящика (учетной записи).
    Видел вариант из друпала www.site.ru/user/valid/id-юзера/временная_метка/хеш_из_пароля_и_емайла (типа того).
    Потом все это посылается в виде ссылки на почту, Человек переходит, идет сравнение пароля и в принципе все.
    Но есть косяк! Если я зарегестрировался, но не активировал учетную запись, а через пару дней сделал запрос на восстановление пароля. Пароль меняется. А потом вспоминаю про активацию, перехожу по ссылке а пороли то уже не совпадают. ОШИБКА!

    Второй вариант. При регистрации создается уникальное число и заносится в базу данных, пусть как activate_key (как в Yupe YII) При подтверждении учетной записи идет сравнение activate_key. Все прикольно, но из-за этого создавать ячейку таблицы на один раз!? Мне кажется это не правильно.

    Какие еще варианты есть?

    Сделать отдельную таблицу для ключей для активации? В нее же вносить ключи при восстановлении пароля.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Re: Организация подтверждения почтового ящика при регистраци

    Тебе реально жалко потратить несколько байт на каждого пользователя?
     
  3. teremok

    teremok Новичок

    С нами с:
    2 сен 2013
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Москоу невер слипс!
    Re: Организация подтверждения почтового ящика при регистраци

    я сделал так. При регистрации создается в таблице активаций запись вида ("ник", "уникальный код", "уникстайм"), а также в основной базе юзеров есть поле активации, по умолчанию фалс. Когда чел регистрируется, ему высылается письмо со ссылкой на скрипт с параметром уникального кода, где активируется его профиль, то есть поле активации становится тру. После эта запись в таблице активаций удаляется, а в основной таблице юзверей поле активации становится тру. Уникстайм сделан для того, чтобы активировать можно было только в пределах определенного времени.
    Пока в таблице юзверей поле активации - фалс, то не восстановить пароль, ни войти - нельзя.

    Надеюсь, объяснил понятно.
     
  4. Bezlepkin

    Bezlepkin Активный пользователь

    С нами с:
    22 авг 2012
    Сообщения:
    56
    Симпатии:
    0
    Re: Организация подтверждения почтового ящика при регистраци

    Мне кажется это самое верное решение! А еще можно добавить параметр Тип "activate" или "recovery" и создавать уникальный код для активации и восстановления пароля
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Организация подтверждения почтового ящика при регистраци

    Все правильно сделал, кроме:
    А смысл ограничивать время активации? Время вышло, что потом? Пользователь повисает навечно неактивированным? Это не круто. Пользователь выпиливается из БД, по этому придется повторно регаться? Или время активации стоит в районе 2-3 месяца, чтобы наверняка?
     
  6. teremok

    teremok Новичок

    С нами с:
    2 сен 2013
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Москоу невер слипс!
    Re: Организация подтверждения почтового ящика при регистраци

    Сори перепутал проверка времени стоит в восстановлении пароля

    Добавлено спустя 1 минуту 30 секунд:
    Re: Организация подтверждения почтового ящика при регистрации
    Угу. Только у меня разные таблицы для этого
     
  7. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Re: Организация подтверждения почтового ящика при регистраци

    > Если я зарегестрировался, но не активировал учетную запись, а через пару дней сделал запрос на восстановление пароля. Пароль меняется.

    Если человек прошел стадию смены пароля, можете со спокойной душой его активировать - она же через email у вас?
    Если речь идет о смене email-а, то можно и забить - вероятность сего мала, а кто попадет - ну запросит активацию мыла еще раз.
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Re: Организация подтверждения почтового ящика при регистраци

    +100

    Добавлено спустя 5 минут 13 секунд:
    Re: Организация подтверждения почтового ящика при регистрации
    Косяк будет если ссылок на повторную активацию/смену пароля нет. Допустим письмо почему-то не пришло и что??? ЧТО!!! Никнейм уже занят (мной), а активироваться ту запись не могу. Я когда наблюдаю такой клинч, готов монитор на голову одеть авторам сайта.
     
  9. teremok

    teremok Новичок

    С нами с:
    2 сен 2013
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Москоу невер слипс!
    Re: Организация подтверждения почтового ящика при регистраци

    В конце концов, всегда есть обратная связь =)