2011-05-17 142 views
1

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

+0

您是否特别感兴趣的是如何使用CakePHP框架完成此任务,或者只是一般? – generalopinion 2011-05-17 19:57:56

回答

1

我没有做这件事,但我本来以为这将是沿着线:

  • 当用户注册生成激活码,并将其与用户ID相关联存储。
  • 有一个验证代码的页面。这将查找URL中给出的代码(或让用户在页面上的一个字段中手动输入),并查看它是否与用户关联的代码(必须登录才能看到此页面)
  • 生成一个URL,它会转到上面的页面并在url中提供代码。
  • 插入电子邮件中的网址,并在登记时向用户发送
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. 哈希activation_secrete返回值和activation code比较哈希记录如果它们匹配,则应该验证用户(如果不是,则将active列设置为1),通知用户激活码不被识别。

您可以在此基础上进行构建,并使其健壮并添加异常处理。例如。您还可以设置激活分泌等的寿命。

+0

很好放!我也给+1 +1 – Drewdin 2011-05-17 19:06:04

+4

如果它是一个随机生成的字符串,为什么它必须被哈希? – 2012-06-15 09:55:35

0

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

+0

它有很多错误 – Aziz 2011-05-18 06:28:14

+0

尽可能地,它应该是一个足够好的基础,而不是完全重新发明轮子。 – mmhan 2011-05-19 06:17:39

相关问题