我需要为我的用户制作激活码。当用户注册时,我的PHP脚本会向用户发送电子邮件,我不知道如何实现激活码或激活链接。我不知道这个电子邮件中的激活码如何使
1
A
回答
11
逻辑这是一个四个步骤:
- 创建激活码
- 存储在数据库中
- 电子邮件的代码给用户一个链接到您的验证脚本
- 检查用户在验证脚本中输入的代码与存储在数据库中的值之间的关系。
示例实现,请参阅:
http://www.learnphponline.com/scripts/email-activation-for-php-forms
1
我没有做这件事,但我本来以为这将是沿着线:
- 当用户注册生成激活码,并将其与用户ID相关联存储。
- 有一个验证代码的页面。这将查找URL中给出的代码(或让用户在页面上的一个字段中手动输入),并查看它是否与用户关联的代码(必须登录才能看到此页面)
- 生成一个URL,它会转到上面的页面并在url中提供代码。
- 插入电子邮件中的网址,并在登记时向用户发送
8
- 创建一个随机字符串
$user_rand
; - 店在
users
表中的随机字符串中activation_secret
栏,设置active
列0 - 哈希随机字符串并发送电子邮件的电子邮件地址提供的用户,并包括一个链接到您激活页面,包括散列作为参数。例如
http://host.com/activate.php?activation_code=sfer3423ste&username=john
- 在
activatate.php
提取物username
和activation code
(这是你发送哈希) - 查询
users
表,其中有active=0
和user=john,
在activation_secrete
- 哈希
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
相关问题
- 1. 如何通过电子邮件发送激活码?在asp.net mvc2
- 2. CakePHP的电子邮件激活
- 3. 发送激活电子邮件 - Django
- 4. 用activate.php激活电子邮件
- 5. Rails重发电子邮件激活
- 6. 编辑WordPress激活电子邮件
- 7. 电子邮件激活问题
- 8. Rails 3和AuthLogic电子邮件激活
- 9. 如何发送企业激活电子邮件?使用EnableBlackBerryUserDispatcherAttributes?
- 10. 激活流星用户而不发送激活电子邮件
- 11. 取消激活并激活电子邮件表格
- 12. 如何禁用激活电子邮件和自动激活博客
- 13. 在电子邮件激活时强制更改密码
- 14. PHP电子邮件激活 - 如何避免滥用者?
- 15. 我不明白电子邮件激活如何工作
- 16. 使用php电子邮件激活帐户
- 17. 在Django admin中激活用户时发送电子邮件
- 18. 在激活电子邮件中沟通用户名
- 19. 如何在电子邮件激活链接中传递我的值?
- 20. 如何修改Open edX Platform中的激活电子邮件内容?
- 21. 从restful_authentication插件删除电子邮件激活
- 22. 发送用户激活电子邮件的新帐户
- 23. 更好的实现电子邮件激活链接
- 24. 电子邮件激活脚本的问题
- 25. 。中文 - 不发送激活邮件对于某些电子邮件服务
- 26. 如何在jmeter中执行负载测试时绕过电子邮件激活
- 27. 如何在django-registration应用程序中禁用电子邮件激活?
- 28. 为什么电子邮件组件不会向gmail发送激活码?
- 29. PHP邮件()激活
- 30. 如何发送自动电子邮件给没有激活帐户的成员
您是否特别感兴趣的是如何使用CakePHP框架完成此任务,或者只是一般? – generalopinion 2011-05-17 19:57:56