如果用户从他/她的电子邮件内容点击任何链接,那么数据库被更新意味着任何条目受到影响


if user click any link from his/her email content then database is updated mean any entry is affcted?

当用户通过他们的电子邮件地址订阅我的时事通讯时,使用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数据库中,从而识别出他们是合法的订阅者,我该怎么做呢?

感谢任何帮助或建议。由于

快速google搜索结果

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

基本上,您需要创建一个订阅者表并验证布尔标志调用,因为将电子邮件地址存储在该表

好的,我想给你一些建议,现在大多数网站在注册时会发生的事情。

当你输入你的用户名和密码时,它会说"电子邮件会发送到您的位置.....我们所做的是,在发送电子邮件之前,我们将用户名和密码保存在数据库中,但使其状态为非活动。

因此,当用户点击链接并获得相关站点时,所需要的就是验证代码并更改状态。

所以一些类似的你必须添加电子邮件到你的数据库,然后发送一些电子邮件。那样的话,你处理目前的问题就容易多了。

使用http://en.wikipedia.org/wiki/Message_authentication_code (MAC)方法。你应该有一把秘钥。使用密钥和用户的电子邮件生成SHA1哈希。然后生成一个激活链接,其中包括用户的电子邮件和散列。在您收到链接的点击后,您做同样的事情-使用相同的密钥,从链接中获取电子邮件,生成哈希并将其与链接中提供的进行比较。如果匹配,则表示电子邮件地址已确认。

此外,在电子邮件中,你可以包括一些更多的信息(例如,时间戳使链接可过期),所有的信息都可以用MAC方法进行认证。

您不需要在数据库中存储任何信息,如@Tommy的答案