Как подтвердить адрес электронной почты с помощью PHP
Поэтому вам необходимо подтверждение пользователя, адрес электронной почты? Нет проблем. Есть много причин, требовать подтверждение электронной почты, PHP, и делает это просто.
Email подтверждения могут быть завершены эти шаги:
- Запрос пользователя на любую информацию, вам необходимо с ними (в том числе их адреса электронной почты)
- Ввод этих данных в базу данных
- Отправить пользователю сообщение с подтверждением специального ключа
- "Разблокировать" данные в базу данных после того, как подтверждение ввода ключа.
Как это сделать:
<? PHP
/ / Во-первых, давайте подключиться к базе данных
$ user_name = "dbUserName";
$ принимающей = "dbHost";
$ my_password = "dbPassword";
$ DB_NAME = "DBNAME";
/ / Подключиться к серверу и выбрать базу данных.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ хост", "$ user_name", "$ my_password") или умереть ( "не могу подключиться к серверу");
) or die ( "cannot select DB" ); mysql_select_db ( "$ DB_NAME") или умереть ( "Невозможно выбрать БД");
/ / Следующие строки в основном спрашивает, если пользователь должен иметь форму отображается. Читать вниз немного, если вы хотите увидеть, где переменные из
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ если (! (@ $ _GET [ 'первый'] == "нет") И И! (@ $ _GET [ 'подтвердить'] == "да") (
/ / Поскольку это первая страница дисплей и нет подтверждения кода включена мы должны проявить виде для пользователя, чтобы заполнить
/ / Эта форма лишь один аргумент (пользователем адрес электронной почты).
?>
method= "post" action= "index.php?first=no" > <form name= "emailConfirmation" method= "post" action= "index.php?first=no">
<table align="center">
<tr>
<td>
type= "text" id= "email" size= "30" /> Электронная почта: <input name= "email" type= "text" id= "email" size= "30" />
</ TD>
</ TR>
<tr>
<TD align="center">
name= "Submit" value= "Submit" /> <input type= "submit" name= "Submit" value= "Submit" />
</ TD>
</ TR>
</ TABLE>
</ FORM>
<? PHP
)
/ / Если форма была заполнена, мы должны сгенерировать код подтверждения вставить код подтверждения и пользователей электронной почты в базе данных, и отправить сообщение на адрес электронной почты.
[ 'first' ] == "no" ){ //if the form has been filled out… ELSEIF (@ $ _GET [ 'первый'] == "нет") (/ / Если форма была заполнена ...
/ / is_valid_email_address не является действительным PHP функций. Включить свой собственный адрес электронной почты, проверка функции здесь ...
is_valid_email_address( $_POST [ 'email' ])) если (! is_valid_email_address ($ _POST [ 'письмо']))); эхо ( "Извините, адрес электронной почты, вы ввели, не действительны.");
/ / Если адрес электронной почты, как действительные и безопасной ...
еще (]); $ почты = ($ _POST [ 'письмо']);
/ / Сгенерировать код подтверждения здесь. Вот так я выбираю это делать, но Существуют бесчисленное количество способов, которые будут работать.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (Rand ()));
/ / Все это более или менее ОК, чтобы войти в базу данных, а затем отправить письмо пользователю
$ запрос = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ( '$ электронной почты', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ результат = mysql_query ($ запроса) или умереть ( "Конфигурация Ошибка 2223");
/ / Отправить письмо
$ до $ = почты;
$ SUBJECT = "Ваш shortlikeafox пример подтверждения" / / С
$ = заголовок "От: shortlikeafox <info@shortlikeafox.com>";
/ / Ваше сообщение
$ MESSAGE = "Ваша ссылка Comfirmation! \ R \ N";
$ .= сообщение "Нажмите на эту ссылку для активации вашей учетной записи \ R \ N";
$ сообщение .= "Это связь с истекал, когда я чувствую себя уборку из неподтвержденных сообщений (каждую неделю или около того) \ R \ N";
$ сообщение .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ R \ N";
$ = отправленные почтой ($ к $ при условии, $ послание, $ заголовок);); эхо ( "Ваше письмо было отправлено!");
)
)
/ / Если пользователь нашел этот скрипт с помощью ссылки в электронной почте, подтверждение ....
[ 'confirm' ] == "yes" ){ ELSEIF (@ $ _GET [ 'подтвердить'] == "да") (
/ / Сделать confirmCode относительно безопасно использовать
[ 'confirmCode' ]); $ confirmCode = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ запрос = "SELECT * FROM emailConfirmationTable ГДЕ con_code = '$ confirmCode' И is_confirmed ='0 '";
( "Error 234234" ); $ результат = mysql_query ($ запроса) или умереть ( "Ошибка 234234");
$ nrows = mysql_num_rows ($ результата);
1){ если ($ nrows == 1) (
$ запрос = "UPDATE emailConfirmationTable SET is_confirmed ='1 'WHERE con_code =' $ confirmCode";
( "Config Error 222231231233 " ); $ результат = mysql_query ($ запроса) или умереть ( "Ошибка конфигурации 222231231233");
если ($ результата)
); эхо ( "EMAIL ПОДТВЕРДИЛ!!!");
)
еще
); эхо ( "Не удалось подтвердить Email");
)
?>
Очень важно помнить, чтобы проверить информацию о том, что пользователь вставляет в любой форме. Я не включает функции для подтверждения адреса электронной почты, но хорошее место, чтобы начать это Cal Хендерсон электронного подтверждения функции найти здесь.
Если вы хотите посмотреть этот скрипт в действии, вы можете сделать это здесь.






















