电子邮件中的激活码如何制作

时间:2011-05-17 18:06:19

标签: php cakephp

我需要为我的用户制作激活码。当用户注册时,我的php脚本会向用户发送电子邮件,我不知道如何实现激活码或激活链接。我不知道这个的逻辑

5 个答案:

答案 0 :(得分:11)

这是一个分为四个步骤的过程:

  1. 创建激活码
  2. 将其存储在数据库中
  3. 通过指向验证脚本的链接将代码通过电子邮件发送给用户
  4. 检查用户在验证脚本中输入的代码与数据库中存储的值。
  5. 有关示例实现,请参阅:

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

答案 1 :(得分:8)

  1. 注册后创建一个随机字符串$user_rand;
  2. 将随机字符串存储在users列的activation_secret表中,将active列设置为0
  3. 对随机字符串进行哈希并将电子邮件发送到用户提供的电子邮件地址,并包含指向激活页面的链接,并将哈希作为参数包含在内。例如http://host.com/activate.php?activation_code=sfer3423ste&username=john
  4. activatate.php中提取usernameactivation code(这是您发送的哈希)
  5. 查询users表,查找active=0user=john,返回activation_secrete
  6. 中的值的记录
  7. hash activation_secrete并将url与url中的activation code进行比较,如果匹配,则应验证用户(将active列设置为1)如果不匹配,请通知用户激活码无法识别。
  8. 您可以在此基础上构建并使其健壮并添加异常处理。例如。您还可以设置激活分泌的生命周期等。

答案 2 :(得分:1)

我没有这样做,但我认为这将是:

  • 当用户注册生成激活码并将其存储与用户ID
  • 相关联时
  • 有一个验证代码的页面。这将查找url中给出的代码(或让用户在页面上的字段中手动输入代码)并查看它是否是与用户关联的代码(必须登录才能看到此页面)
  • 生成一个网址,该网址会转到上一页并在网址中提供代码。
  • 在电子邮件中插入网址并发送给用户

答案 3 :(得分:0)

或者你可以简单地使用CakeDC's users plugin并避免所有麻烦。

答案 4 :(得分:0)