Подскажите лучший способ верификации e-mail.

php MySQL e-mail

Вы знаете что почти на всех современных сайтах при регистрации нужно подтвердить принадлежность введенного вами e-mail'а вам. Но как такая проверка осуществляться лучшим образом? Конечно, сначала нужно проверить строку регулярным выражением и вычислить - точно ли это e-mail. А потом? Я решил создать новую таблицу в БД с полями user, e-mail, code, где code - строка, создающаяся рандомно и которую нужно подтвердить по ссылке, отправленной user'у на e-mail. но по-моему новая таблица для этого жирновато. Но если этот способ вы считаете приемлемым, то посоветуйте - как создавать рандомные строки? Спасибо заранее.
Ответы:
Пусть будет отдельная таблица, в которой будут хранится пары ключ-меил. Эти записи появляются при регистрации и удаляются, когда юзер задействует код или по прошествии времени, например, суток. Типо неуспели подтвердить мыло.
Мне кажется вполне оправданный подход, но я не спец по БД.
Новая таблица совершенно ни к чему, обычно просто добавляют новый столбец в таблицу users (например, actcode). Если в нём ничего нет, значит, e-mail уже подтверждён. А сразу при регистрации туда пишем рандомный код, который и надо будет ввести юзеру (или нажать ссылку с указанным этим кодом, которая пришла ему на мыло).
А теперь внимательно, правильный ответ. Ни в какой базе ничего специального создавать не нужно. Делаем так:
1. Пользователь вводит капчу и емейл на странице 1.
2. Если капча прошла и емейл прошел по маске, страница 1 генерит письмо со ссылкой и посылает на указанный емейл. Ссылка содержит адрес страницы 2 и параметры типа ?email={указанный емейл}&code={md5 от емейла с секретным ключом сайта}
3. Пользователь, получив письмо, тыркает в ссылку и попадает на страницу 2. Страница 2 получает в качестве параметров емейл и код. Берет емейл, снова вычисляет md5 от емейла с секретным ключом и сравнивает с тем кодом, что пришел от пользователя. Если совпало - все, емейл верифицирован, запоминаем в сессии и перебрасываем пользователя на страницу, где он уже заполнит имя, пароль, и всякое другое. Заполнил, все проверили, завели в базе нового пользователя. Welcome to machine.
2crimaniak: да, это тоже правильный способ, отличие лишь в том, что зная секретный ключ, бот может сам легко и непринуждённо активировать свои fake-emailы. Как такое возможно ? Очень просто. Если ставится скачанный форум из дистибутива, то этот код может быть одним и тем же у всех дистрибутивов. Умный форум, конечно же, должен этот секретный код задавать рандомно при установке.
>Epsiloncool
>2crimaniak: да, это тоже правильный способ, отличие лишь в том, что зная секретный ключ, бот может сам легко и непринуждённо активировать свои fake-emailы. Как такое возможно ? Очень просто. Если ставится скачанный форум из дистибутива, то этот код может быть одним и тем же у всех дистрибутивов. Умный форум, конечно же, должен этот секретный код задавать рандомно при установке.
Проблема с накапливающимися неактивированными аккаунтами решается довольно просто


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.