Что такое подтверждение почты
Подтверждение адреса электронной почты
4 минут Автор: Алексей Шипунов 223
Электронная почта участвует в регистрации аккаунтов и страниц практически в любых сервисах, социальных сетях, приложениях и так далее. В большинстве случаев автоматическая система просит пользователя подтвердить то, что именно он владелец почтового ящика. Из данной инструкции вы узнаете, как подтвердить адрес электронной почты при его использовании для создания аккаунта в каком-либо сервисе.
Зачем подтверждать почту
Процедура подтверждения почтового ящика присутствует практически на всех сайтах в обязательной или опциональной форме. У результата есть несколько полезных последствий:
Как доказать владение почтой при регистрации аккаунта
Перейдем к процедуре подтверждения адреса электронной почты. Чаще всего пользователи сталкиваются с данной операцией или сразу после регистрации аккаунта, или при первой авторизации на странице/сервисе. В редких случаях вы должны самостоятельно привязывать Email через настройки аккаунта или приложения.
Сообщение со ссылкой или кодом для подтверждения отправляется на ваш почтовый ящик после ввода логина, пароля и прочих сведений, необходимых для регистрации. Укажите в форме Email и нажмите кнопку для отправки сообщения или кнопку завершения регистрации.
Теперь перейдите к сайту, где у вас зарегистрирован Email, и авторизуйтесь. Зайдите в раздел «Входящие» и откройте соответствующее письмо.
В письме должна быть указана ссылка, по которой нужно кликнуть для завершения операции. В результате перехода на исходный сайт вы увидите уведомление о том, что аккаунт успешно подтвержден! Но некоторые сайты используют несколько другой способ – это комбинация цифр или символов. Вам необходимо скопировать или запомнить код, а затем ввести его в соответствующее поле. Например, по такому принципу подтверждается почта при регистрации в Twitter.
При создании профиля в другом сервисе или соцсети в письме может быть указана ссылка как в виде обычного адреса сайта, так и в виде кнопки. Переходите по ним смело, если сообщение прислано от официального адреса сайта.
Возможные проблемы
Нередко пользователи сталкиваются с проблемами при подтверждении почтового ящика. Рассмотрим самые распространенные ситуации.
Одна из главных проблем – это бесконечное ожидание письма. Первое, что необходимо предпринять – это повторная попытка отправки сообщения спустя некоторое время. Подождите пару минут и повторите процедуру. Если письма нет, рекомендуется сделать следующее:
Иногда причиной может стать неправильный электронный адрес. Например, с такой проблемой сталкиваются пользователи при регистрации на зарубежных сайтах с помощью Yandex или Mail.ru. Попробуйте создать аккаунт на Гугле и повторить регистрацию/подтверждение заново. Если вы не можете создать новый профиль, то через настройки привяжите другую почту (если сайт предоставляет подобную возможность).
Gmail иногда помещает письма для подтверждения в раздел «Соцсети» или «Промоакции». Обязательно проверьте данную вкладку.
Если предыдущие методы не помогли решить проблему, то проверьте возможности сервиса, где вы регистрируетесь. Возможно, что сайт или приложение предлагают альтернативный метод подтверждения с помощью мобильного номера. Укажите свой телефон и дождитесь SMS с кодом, который нужно вписать в соответствующее поле на сайте. Тогда ваш аккаунт будет подтвержден!
Чтобы подтвердить адрес электронной почты, достаточно дождаться письма, убедиться в его подлинности, перейти по ссылке/нажать кнопку/ввести присланный код. Если система не попросила подтверждения в момент регистрации, то выполните операцию самостоятельно через настройки.
Помогаем пользователю подтвердить Email
Если у вас есть сайт или приложение, которые при регистрации нового пользователя просят подтвердить адрес электронной почты, у меня для вас есть совет и небольшая таблица с данными, которые помогут сделать процесс регистрации проще и удобнее для пользователя, а также позволят немного поднять процент конверсии посетителей в пользователи.
Что происходит после того, как пользователь указывает свой email в форме регистрации и отправляет форму на сервер?
Вариант первый, хороший: вы отправляете письмо и сразу же даете доступ к основным функциям вашего сайта или приложения, попутно напоминая пользователю о том, что неплохо бы перейти по ссылке из почты, чтобы убрать это назойливое напоминание и получить доступ ко всем функциям без исключения. Если адрес email не является для вас жизненно важным и вы можете дать частичный доступ без подтверждения почты, следует всегда делать именно так. Но эта схема применима не во всех случаях, поэтому…
Вариант второй, хуже: письмо отправляется, приложение показывает полупустую страницу с сообщением «проверьте вашу почту» и на этом стройная последовательность действий обрывается. Мне грустно смотреть на сайты, которые платят деньги Google или Яндексу за каждого привлеченного посетителя, корпят над landing страницам, стараясь выжать максимальный процент конверсии, максимально упрощают форму регистрации, но после отправки формы бросают пользователя на произвол судьбы.
Товарищи, регистрация ещё не закончена! Я понимаю, когда десяток лет назад все пользовались standalone почтовыми программами и у вас не было выбора, кроме как попросить пользователя запустить Outlook или The Bat. Но сейчас все пользуются веб-почтой. У веб-почты есть адрес URL и пользователь только что вам намекнул, какой именно веб-почтой он пользуется.
Постройте бесшовный процесс регистрации, проведите пользователя за руку через каждый этап, не упускайте его внимания ни на минуту. После отправки регистрационной формы покажите в центре экрана большую жирную ссылку на почтовый сервис пользователя. Не нужно просить юзера искать закладку или набирать «gmail.com» в адресной строке. Не давайте ему отвлечься. 🙂
Даже если слово «конверсия» для вас не имеет большого значения, такой хак имеет смысл внедрить просто потому, что это удобно и дарит пользователю приятное ощущение, что о нём заботятся.
Итак, как получить адрес и название почты, используя адрес email, который сообщил вам пользователь? Ловите табличку в формате CSV:
Разумеется, это далеко не все почтовые службы. Рекомендую заглянуть в список почтовых адресов ваших пользователей и добавить именно те сервисы, которыми они пользуются.
Создать таблицу и импортировать CSV-файл в MySQL можно следующей командой:
А дальше вы просто выделяете из адреса email почтовый домен, по нему находите в таблице название и адрес почтового сервиса, и показываете их пользователю.
Вы можете написать название сервиса, можете просклонять названия и сделать красивую надпись «Перейти в Яндекс.Почту» или просто показать сам email. Главное, чтобы там была ссылка на его «Входящие».
Посмотреть этот простой хак в работе можно, например, на нашем сервисе для тестирования знаний программистов CrowdTest, для которого эта таблица и создавалась:
Как создать письмо-подтверждение, которое повысит продажи и укрепит отношения с клиентами
Блочный редактор писем, готовые шаблоны email, формы подписки и автоматизация. Запускайте email-рассылки, чтобы быть на связи со своими клиентами.
Как развиваться в диджитал. Какие каналы сейчас в тренде. Как зарабатывать больше и поднимать чек за свои услуги.
Рассказываем про инструменты для email-рассылок. Обсуждаем лучшие примеры и механики. Говорим о деньгах. Публикуем вакансии.
Письмо с подтверждением — это сервисное письмо, которое отправляется автоматически, чтобы подтвердить определенное действие клиента или продавца: оформление заказа или подписку на рассылку, регистрацию на сайте или доставку товара.
Недавно мне попалась хорошая статья Лауры Боско, которая подробно описывает, зачем нужны такие письма и как их правильно делать. Поэтому далее привожу перевод этой статьи, адаптированный под наши реалии email-маркетинга.
Письмам с подтверждением редко уделяют должное внимание. Чаще всего для них используют готовый шаблон, который предлагает CRM или платформа для интернет-магазина. Поэтому типичное письмо-подтверждение выглядит примерно так:
Однако такое отношение лишает маркетологов множества возможностей. Ведь письма с подтверждением могут помочь создать дополнительную ценность, выделиться из толпы, укрепить доверие и даже увеличить продажи.
«Электронное письмо с подтверждением, особенно после покупки, — это прекрасная возможность углубить отношения с клиентами и завоевать их лояльность», — говорит Ами Уильямсон, e-commerce копирайтер.
Разберем подробнее, чем могут быть полезны письма такого рода.
В чем польза писем с подтверждением
Помимо очевидной цели — передать важную информацию клиенту — письма с подтверждением могут помочь решить много других маркетинговых задач.
Обратиться к клиенту лично. Сервисные (транзакционные) письма не считаются спамом по закону, да и получатели обычно относятся к ним с большим вниманием, чем к обычным рассылкам. Поэтому все письма с подтверждением получают довольно высокие показатели открытий и переходов. Средний open rate у писем с подтверждением — 42,5%, click rate — 18,3%, а конверсия — 10%. При этом обычные рассылки получают около 15-25% открытий и всего около 2,5% кликов.
Получается, что транзакционные письма открывают в 1,5-3 раза чаще. А значит, у компании есть отличная возможность обратиться к подписчикам. Например, можно спросить, почему они выбрали вашу компанию, или запросить дополнительную информацию, чтобы в будущем отправлять более персонализированные письма.
Воздействовать на клиента в ключевых точках customer journey. Если пользователь подписался на вашу рассылку, он уже проявил заинтересованность. Я уже не говорю про тот момент, когда клиент решил потратить свои кровно заработанные и сделал заказ. Каждый из этих этапов идеален, чтобы постараться укрепить оказанное доверие. Например, можно рассказать клиенту, как получить максимальную пользу от товара. Довольные покупатели чаще пишут хорошие отзывы и возвращаются за повторной покупкой.
Получить ценные данные. Можно отслеживать открытия по дням недели, клики, конверсию, время чтения. Также с помощью таких писем вы можете собрать дополнительную информацию о клиенте. Полученные данные помогут оптимизировать время отправки и улучшить сегментацию, чтобы вы могли отправлять правильные сообщения нужным людям в нужное время. Кроме того, такие сервисные письма можно использовать, чтобы собрать отзывы о процессе покупки.
Повысить конверсию с помощью правильного СТА. Письма с подтверждением могут стать источником роста продаж, так как в этот момент аудитория максимально вовлечена во взаимодействие с компанией. Транзакционные письма отправляются в ответ на действия пользователя именно в тот момент, когда он их ждет. Поэтому письма с подтверждением нередко используют для продажи дополнительных продуктов. Так, мне попадались письма с подтверждением заказа, в которых предлагали докупить аксессуары к выбранному товару, пока его еще не передали в доставку. Конечно, все допродажи возможны только после того, как вы дадите клиенту всю информацию, которую он ожидает получить.
Выделиться на фоне конкурентов. На письма с подтверждением мало кто обращает внимание. Обычно настраивают и отправляют шаблонные варианты, которые предлагает платформа электронной коммерции или CRM. При этом письмо с подтверждением — это одна из первых рассылок которую пользователь получает от имени вашей компании. Так почему бы не приложить немного усилий, чтобы написать хорошее письмо и порадовать клиента?
Виды писем с подтверждением
Большинство интернет-магазинов регулярно отправляют пользователям три вида писем с подтверждением.
Письмо с подтверждением подписки. Отправляется после подписки на рассылку. Чаще всего содержит ссылку для подтверждения email-адреса.
Письмо с подтверждением заказа. Содержит важную информацию о заказе: его номер, содержание, ответы на вопросы, которые могут возникнуть у клиента по поводу заказа.
Письмо с подтверждением доставки. Содержит подробные сведения о доставке товара. Отправляется после отправки заказа клиенту.
Стоит отметить, что это наиболее популярные, но далеко не все виды писем с подтверждением. Если вы проводите вебинар, то вам не обойтись без письма с подтверждением регистрации, а отели постоянно отправляют письма с подтверждением бронирования номеров.
Как создать эффективное письмо с подтверждением
Поделюсь несколькими приемами, которые помогут улучшить ваши письма-подтверждения.
Придумайте хорошую тему. Чтобы ознакомиться с содержанием письма, пользователь должен его открыть. В этом поможет правильная тема.
Добавьте необходимую информацию. Если вы отправляете электронное письмо с подтверждением заказа, не забудьте:
В письме с подтверждением доставки укажите:
Если вы отправляете подтверждение подписки, добавьте:
Сформируйте правильные ожидания. Расскажите клиенту, что будет дальше: сколько по времени займет сбор заказа и когда будет доставка, куда обратиться, если что-то пойдет не так. Такая информация устанавливает определенные ожидания и укрепляет доверие. Дайте клиенту понять, что вы заботитесь о том, чтобы он получил свой заказ. Расскажите о возможных задержках и форс-мажорах. Тогда клиент вряд ли перейдет в разряд недовольных, даже если столкнется с небольшими трудностями — вы честно о них предупредили.
Также вы можете рассказать, какие еще письма клиент получит в ближайшее время. Например, сообщите, что вы пришлете очередное письмо, когда заказ будет отправлен. Или перечислите, какие типы писем будет получать подписчик и о чем, если это подтверждение подписки.
Создайте шаблон в корпоративном стиле. Лучше не использовать для транзакционных писем стандартный шаблон, который предлагает сервис. Как минимум, измените его так, чтобы по цвету, дизайну и тону текста он соответствовал стилю вашего сайта и бренда в целом.
Подтверждение E-mail #2436
Отправка и получение системных сообщений в системе управления возможна только с использованием подтвержденного адреса электронной почты.
Подтвердить адрес электронной почты можно следующим образом:
Шаг 1
Если адресов электронной почты ранее не добавлялось, то окно подтверждения выглядит так:
Шаг 2
После нажмите «Добавить».
Шаг 3
На указанный почтовый ящик придет письмо, содержащее код подтверждения и ссылку для подтверждения адреса.
Существует 2 способа подтвердить адрес почты:
Способ 1. Подтверждение адреса посредством ввода кода
Вам необходимо нажать на ссылку “Подтвердить” рядом с только что добавленным адресом в списке.
Затем необходимо скопировать код из письма и вставить в текстовое поле, предназначенное для кода подтверждения.
После ввода необходимо нажать кнопку “Подтвердить”
Способ 2. Подтверждение адреса посредством ссылки
Просто перейдите по ссылке из письма.
При активации ссылки, система сообщит об успешном подтверждении адреса.
После подтверждения адреса посредством ссылки необходимо нажать в списке адресов на ссылку «Подтвердить».
И далее в форме нажать кнопку “Готово”.
Готово!
В случае если код введен верно, либо подтверждение по ссылке прошло успешно, адрес будет считаться подтвержденным и станет доступен доступен для выбора в качестве контактных данных.
Подтвержденный адрес отображается в списке адресов следующим образом:
Повторная отправка
В случае если при подтверждении посредством ссылки возникли ошибки, система известит Вас об этом сообщением:
В случае если письмо на ящик не пришло, либо возникла ошибка подтверждения посредством ссылки необходимо проверить правильность введенного адреса. Если адрес введен правильно, то необходимо запросить повторную отправку письма. Для этого воспользуйтесь кнопкой “Отправить повторно”.
В случае повторной отправки, система предупредит, что запрашивать повторную отправку возможно не чаще, чем раз в 2 минуты.
Обратите внимание!
Подтверждение адреса электронной почты
Приветствую! Как и обещал, в этой статье мы добавим функционал подтверждения почты к форме регистрации, которую создали в статье » Создание формы регистрации и авторизации «. Архив с файлами сайта, которого создали в прошлой статье, Вы можете скачать по этой ссылке.
И так, погнали! Для начала, изменим немножко саму форму регистрации. Регистрируясь в различные сайты, Вы наверняка заметили что, у многих форм регистрации, присутствует поле для ввода повторного пароля. Данное поле добавляется для того чтобы подтвердить вводимый пароль. Так вот, у нашей формы регистрации мы также добавим это поле «повторите пароль».
Замечание! После скачивания архива, не забудьте поменять данные для подключения к базе данных и указать адрес Вашего сайта. Всё это нужно сделать в файле dbconnect.php.
Добавляем поле «повторите пароль» у формы регистрации
Для того чтобы добавить это поле, открываем файл form_register.php с формой регистрации, и сразу после ряда таблицы с полем для ввода пароля, добавляем поле «повторите пароль».
Теперь, с помощью JavaScript мы должны проверить, совпадают ли пароли из этих полей. Если они не совпадают, то дезактивируем кнопку регистрации и выведем сообщение о том, что пароли не совпадают, иначе, если пароли совпадают, то убираем это сообщение об ошибке и активируем кнопку регистрации.
Сейчас, код JavaScript, у нас находится в файле header.php. Он действителен как для формы регистрации, так и для формы авторизации. Но, это не совсем правильно, так как это две разные формы. И при написании кода проверки для формы регистрации, возникнут проблемы с проверкой формы авторизации и наоборот.
Поэтому вырезаем этот код из файла header.php, вместе с тегами script и вставляем его в файле form_register.php, до блока для вывода сообщений. Код подключения библиотеки jQuery оставляем в файле header.php.
Теперь, открываем файл form_auth.php и добавляем этот же код, вместе с тегами script, также до блока для вывода сообщений.
Сохраняем изменения во всех затронутых файлах, возвращаемся к файлу form_register.php и приступаем к изменению JavaScript кода.
Значит, код, где проверяется email, мы не трогаем, изменения производим в коде, который находится ниже строчки с комментарием Проверка паролей. После строчки, где объявляем переменную password, объявляем ещё одну переменную confirm_password.
Теперь, производим изменения внутри функции, обработки события blur, для поля password. Заменяем старое содержимое на это:
Это были изменения для проверки поля, где вводится первый пароль. Здесь мы проверили такие случаи:
Если первый пароль имеет длину меньше шести символов, и он не совпадает с паролем из поля подтверждения пароля, то мы выводи оба сообщения: «Минимальная длина пароля 6 символов» и «Пароли не совпадают«.
В случае, если первый пароль имеет длину меньше шести символов, и он совпадает с паролем из поля подтверждения пароля, мы выводим сообщение об ошибке только для первого поля: » Минимальная длина пароля 6 символов «
Когда длина первого пароля больше 6 символов, но он не совпадает со вторым паролем, то мы выводим сообщение только для второго поля: » Пароли не совпадают «
Но, также необходимо проверить совпадают ли пароли, после ввода второго пароля. То есть, когда поле для подтверждения пароля теряет фокус, мы должны проверить совпадает ли второй пароль с первым паролем.
В коде, который представлен выше, в указанное место » //(1) — Место для следующего куска кода » добавляем следующий кусок кода:
Проверка паролей на совпадение на стороне сервера
Выше, мы сделали проверку, совпадает ли пароль из поля password с паролем из поля confirm_password на языке JavaScript, используя библиотеку jQuery. Но мы должны сделать эту же проверку и на стороне сервера, вдруг пользователь отключил JavaScript в своём браузере.
В файле register.php после строчки, где обрезаем пробелы пароля в массиве POST.
Добавляем код, где проверяем, совпадают ли пароли.
Всё. С проверкой паролей на стороне сервера, мы также закончили. Идём дальше.
Подготовка базы данных
Замечание! Функционал подтверждения почты я делал на реальном сайте, так как на хостинге уже настроен функционал отправки почты и функция mail() работает без проблем. Если у Вас сайт на локальном хостинге, то, чтобы всё работало, нужно настроить сервер. Если вы пользуйтесь пакетом Denwer, то, отправленные письма будут сохраняться в папке tmp/!sendmail.
Для начала, в форму регистрации, необходимо добавить заметку о том, что пользователь должен ввести действующий email, так как на нём мы отправим сообщение со ссылкой, для подтверждения почты.
Для этого открываем файл form_register.php и сразу после тега input для ввода email, добавляем сообщение, внутри тега p.
И ещё, у тега input добавляем атрибут maxlength со значением 100. С помощью этого атрибута мы устанавливаем максимальное количество символов для ввода.
В общем, код у нас получился таким:
Для оформления сообщения из абзаца, мы добавили тегу p, класс note_text. Стили этого класса находятся в файле css/styles.css.
Теперь переходим к разработке самого функционала подтверждения почты.
И начнём мы с базы данных. Как Вы помните из прошлой статьи, в базу данных, мы создали таблицу users, для хранения пользователей. У этой таблицы мы добавили поле email для сохранения почтового адреса пользователя и поле email_status, для указания, подтверждена ли почта у этого пользователя или нет. Если почта подтверждена, то поле email_status будет иметь значение 1, иначе, значение 0.
Но этого не достаточно. Нам необходимо создать ещё одну таблицу, для временного хранения данных пользователей, которые ещё не подтвердили свою почту. Как создать таблицу я объяснил в статье Создание базы данных mysql в phpmyadmin. Эта таблица будет иметь такие поля: id, email, token и date_registrtion. И назовём мы эту таблицу confirm_users.
Поле token предназначена для хранения уникального кода, для каждого пользователя. Этот код мы поставим в ссылке из письма, которую отправим пользователю на почту.
Когда пользователь нажмёт на ссылку из письма, он перейдёт обратно на наш сайт, где мы будем проверять, равен ли код из ссылки, с кодом который хранится в поле token. И если они равны, то мы удалим данные пользователя из таблицы confirm_users, а в таблицу users изменим значение поля email_status с 0 на 1.
С таблицами из базы данных мы разобрались, приступаем к программированию функционала подтверждения почты.
Отправление письма для подтверждения почты
В предыдущей статье в случаи успешной регистрации, мы просто перенаправляли пользователя на страницу авторизации с сообщением о том что » Регистрация прошла успешно. «.
Теперь же, в случаи успешной регистрации, то есть после успешного добавления пользователя в таблицу users, необходимо составить уникальный token, и вместе с адресом электронной почты и датой регистрации добавить пользователя в таблицу confirm_users.
Поэтому в нашем файле register.php, удаляем код, который находится в блоке else. Вот этот:
И вместо него пишем вот этот код:
После того как мы добавили данные в таблицу confirm_users, мы проверяем если вдруг произошла ошибка в запросе, то мы добавляем в сессию сообщение об этой ошибке, иначе отправляем пользователю на указанную почту письмо, со ссылкой, для подтверждения почты. А на сайте выводим сообщение о том, что регистрация прошла успешно и необходимо подтвердить введённый адрес электронной почты.
Теперь, чтобы не было путаницы, необходимо удалить эти строчки, которые находятся сразу после блока else:
И вместо них записать вот эти:
Дальше, обратите внимание, что в случае успешной отправки письма, в ссылку перенаправления пользователя обратно на страницу регистрации, мы добавили параметр hidden_form.
Параметр hidden_form нужен для того чтобы мы смогли спрятать форму регистрации после успешной отправки сообщения для подтверждения почты. Нам не нужно чтобы этот же пользователь смог зарегистрироваться заново.
Теперь, для того чтобы спрятать эту форму регистрации, мы должны изменить условия её отображения. Открываем файл form_register.php и внутри этого условия:
Добавляем ещё одно условие, таким вот образом:
Теперь, в случае успешной регистрации мы увидим только это сообщение:
Хорошо, с добавлением пользователя в таблицу confirm_users, отправлением письма на почту и выводом сообщения об успешной регистрации мы закончили.
Переход по ссылки из письма для подтверждения почты
Замечание! Перед тем как продолжить, убедитесь в том, что при регистрации указали правильный почтовый ящик. Иначе Вы не получите письмо.
Настало время проверить, если письмо отправляется без проблем. Открываем в браузер страницу регистрации, вводим данные и нажимаем на кнопку зарегистрироваться.
Теперь, открываем наш почтовый ящик и видим, что нам пришло письмо с темой » Подтверждение почты на сайте develop.sozdatisite.ru «.
Открываем это письмо и видим ссылку для подтверждения почты.
Обратите внимание на адрес ссылки. Когда мы составляли тело этого письма, мы указали ссылку подтверждения таким образом:
И видим что, после нажатия на эту ссылку, мы перейдём в файл activation.php, в котором мы должны закончить с подтверждением. То есть, в этом файле необходимо, удалить пользователя который подтвердил свою почту, из таблицы confirm_users, а в таблице users, поменять статус почты с 0 на 1.
Как видим ссылка из письма, содержит два параметра, токен и email. Поэтому, перейдя по этой ссылке, мы должны сначала проверить, существуют ли у неё эти параметры.
Создаём этот файл activation.php, открываем его и пишем этот код:
Если эти параметры существуют, то идём дальше. А дальше мы должны проверить, совпадает ли токен из ссылки с токеном из таблицы confirm_users.
Поэтому мы должны сделать запрос к этой таблице confirm_users, и выбрать значение поля token у соответствующего пользователя.
Если ошибок в запросе к базе нет, пользователь с такими данными существует и токены совпадают, то идём дальше. Иначе, останавливаем скрипт и выводим сообщение о соответствующей ошибке. Да, и в конце файла, завершаем запрос на выборку пользователя и закрываем подключение к базе.
Дальше мы должны обновить статус у поля email_status из таблицы users и удалить временные данные пользователя из таблицы confirm_users.
В указанное место » //(1) Место для следующего куска кода «, пишем следующий код:
Если всё прошло успешно, то подключаем шапку и подвал сайта, и выводим радостное сообщение о том, что почта успешно подтверждена.
При авторизации проверяем, подтверждена ли почта
Теперь, при авторизации, мы должны проверить подтверждена ли почта. Если почта подтверждена, то пользователь войдёт в свой аккаунт, иначе, он увидит сообщение о том, что почта не подтверждена.
Открываем файл auth.php и изменяем его. После того как проверили, если зарегистрирован в базе пользователь с полученным почтовым адресом и паролем, то есть после этой строчки:
И перед тем как добавить email и пароль в сессию, то есть перед этими строчками:
Добавляем код для проверки, подтверждена ли почта или нет. Если почта не подтверждена, то выводим сообщение об ошибке, иначе, добавляем email и пароль в сессию.
В общем, код, у нас должен получиться таким:
Обратите внимание, что мы вырезали строки добавления данных в сессию и перенаправления пользователя на главную страницу и добавили их в блоке else, проверки статуса email.
Переходим в браузер на страницу с формой авторизации и проверяем. Попробуем авторизоваться с не подтверждённым почтовым адресом.
Как видите, мы получили сообщение об ошибке. Если email был бы подтверждён, то мы бы прошли авторизацию без проблем.
Удаление пользователей, которые не подтвердили свою почту в течении сутки
В принципе, с подтверждением почты мы закончили, осталось разобраться с удалением пользователей из базы данных, которые не подтвердили свою почту в течении сутки с момента регистрации. Но перед тем как приступить к удалению пользователей, мы должны добавить поле date_registration для таблицы users и изменить запрос на добавления пользователей в эту таблицу.
Открываем phpMyAdmin, выбираем таблицу users, кликаем на вкладку структура и нажимаем на кнопку OK.
Дальше, вводим название поля date_registration, тип выбираем datetime и нажимаем на кнопку сохранить.
Поле date_registration мы добавили, теперь нужно изменить запрос на добавления пользователей в таблицу users. То есть нужно указать, чтобы в поле date_registration записывалась дата регистрации пользователя.
Открываем файл register.php, идём к запросу на добавления пользователя в таблицу users и изменяем его таким образом:
То есть, в конце первых скобок, через запятую добавляем поле date_registration, а в значение для этого поля, указываем функцию NOW().
Теперь, можно приступить и к удалению неподтверждённых пользователей. При регистрации, мы добавляем пользователя сразу в обеих таблиц, в таблицу users и в таблицу confirm_users. Поэтому, удалить мы будем его также из обеих таблиц.
И тут у меня возник вопрос, в какой момент лучше всего этого сделать, то есть когда удалить не подтверждённых пользователей? В процессе регистрации, в процессе авторизации или после того как пользователь нажал на ссылку для подтверждения почты. Подумал я, и пришёл к выводу, что лучше всего сделать это во всех этих трёх случаях.
Удаление не подтверждённых пользователей в процессе регистрации
Начнём мы с момента регистрации. Открываем файл register.php, и перед добавлением пользователя в таблицу users, добавляем этот запрос:
В этом запросе мы указываем, что необходимо удалить пользователей, которые не подтвердили свою почту в течении сутки с момента регистрации, то есть у которых значение поля email_status равна нулю и разница между текущем временем ( функция NOW() ) и одной сутки (INTERVAL 1 DAY ) равна больше даты регистрации из поля date_registration.
Теперь, перед тем как составить токен и добавить пользователя в таблицу confirm_users, также добавим запрос на удаления не подтверждённых пользователей, но уже из таблицы confirm_users.
Теперь, перед тем как зарегистрировать нового пользователя, будут удаляться не подтверждённые пользователи.
Удаление не подтверждённых пользователей в процессе авторизации
Открываем файл auth.php, и перед запросом на выборе пользователя из таблицы users, добавляем сразу два запроса для удаления не подтверждённых пользователей из таблицы users и из таблицы confirm_users.
Удаление не подтверждённых пользователей в процессе подтверждения почты
Открываем файл activation.php и перед запросом на выборке токена из таблицы confirm_users, добавляем те же запросы для удаления неподтверждённых пользователей, из таблицы users и confirm_users.
И на этом завершается эта длинная статья. Надеюсь, что Вы хорошо освоили этот урок и теперь Вы точно знаете, как реализовать функционал подтверждения почты. А следующая статья будет о том, как реализовать функционал восстановления пароля, так что не забудьте подписаться на новые статьи. Желаю Вам всего хорошего!
Похожие статьи:
Понравилась статья?
Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.
Поделиться с друзьями:
Подписаться на новые статьи:
Поддержите пожалуйста мой проект!
Если у Вас есть какие-то вопросы или предложения, то можете писать их в комментариях или мне на почту sergiu1607@gmail.com. И если Вы заметили какую-то ошибку в статье, то прошу Вас, сообщите мне об этом, и в ближайшее время я всё исправлю.
Автор статьи: Мунтян Сергей