если пользователь щелкнет по какой-либо ссылке из его / ее содержимого электронной почты, база данных будет обновлена, значит, какая-либо запись подтверждена? - PullRequest
0 голосов
/ 15 декабря 2011

Когда пользователь подписывается на мою новостную рассылку через свой адрес электронной почты, используя php, как я могу отправить ему ссылку активации по электронной почте, чтобы подтвердить, что это его адрес электронной почты, а не поддельный.

так что на данный момент у меня есть

PHP:

<?php
 $to = "recipient@example.com";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";
 if (mail($to, $subject, $body)) {
   echo "<p>Message successfully sent!</p>";
  } else {
   echo "<p>Message delivery failed...</p>";
  }
 ?>

Думаю, я бы изменил $ body на это:

$body = "Please click the link to activate your email \n
http://www.activationlink.com?";

Как бы я сделал так, чтобы, если пользователь щелкнул эту ссылку, он добавил свои данные в базу данных Mysql, признавая, что они являются законным подписчиком?

Любая помощь или предложения приветствуются. Спасибо

Ответы [ 3 ]

0 голосов
/ 15 декабря 2011

Хорошо, я хотел бы предложить вам кое-что, что происходит во время регистрации на большинстве сайтов сегодня.

что происходит, когда вы вводите имя пользователя и пароль, «Электронная почта отправляется в ваше местоположение ..... (что-то вроде этого)», что мы делаем, что перед отправкой электронной почты мы сохраняем это имя пользователя и пароль в БД, но делаем там статус неактивным.

Поэтому, когда пользователи нажимают на ссылку и получают соответствующий сайт, все, что нужно, это проверить код и изменить статус.

Итак, вы должны добавить электронное письмо в свою БД, а затем отправить электронное письмо. В этом случае вам будет легко справиться с текущей проблемой.

0 голосов
/ 15 декабря 2011

Используйте подход http://en.wikipedia.org/wiki/Message_authentication_code (MAC).У вас должен быть секретный ключ.Используйте ключ и адрес электронной почты пользователя для создания хэша SHA1.Затем создайте ссылку активации, которая включает в себя электронную почту пользователя и хэш.После получения клика по ссылке вы делаете то же самое - используете тот же секретный ключ, извлекаете электронное письмо из ссылки, генерируете хеш и сравниваете его с указанным в ссылке.Если он совпадает, то это означает, что адрес электронной почты подтвержден.

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

Вам не нужно хранить какую-либо информацию в базе данных, как в ответе @ Tommy.

0 голосов
/ 15 декабря 2011

Быстрый результат поиска в Google

http://www.learnphponline.com/scripts/email-activation-for-php-forms

В основном вам необходимо создать таблицу подписчиков и подтвердить вызов логического флага, чтобы сохранить адрес электронной почты в этой таблице

...