longjianghu 发表于 2012-9-7 15:46:34

我的思路:
1、用户注册之后发送激活邮件(此时用户为已注册但不能登录)
2、通过用户点击邮件激活帐户(验证生成的字符串和数据库里的帐户是否一致)

在表里增加一个验证字符串的字段即可。

gogogo1027 发表于 2013-7-2 11:36:26

解决思路:
用户注册的时候先存库,同时user表有一个active字段,存放一段加密的随机码。
当用户注册成功的时候,先把这串随机码写进数据库,然后再以邮件发送验证地址加这串随机码发送到用户注册的邮箱上。
用户登录邮箱点击验证,先判断用户的随机码是否与该用户数据库中随机码一致,如果是,则证明邮箱属于该用户,验证就通过了,通过之后,将active置空或者设成1,这样每次用户登录的时候先判断该用户的active的值是否为1,如果不是,说明未验证,这个时候就通知他要么登录邮箱验证,要么重新发送邮件之类的。
你还可以在表中加一个验证时效字段,如果超过这个时效,再重新生成一个随机码,提示用户该链接失效

大道达人 发表于 2013-7-4 10:10:52

我当时的表结构

CREATE TABLE IF NOT EXISTS `lalala_url` (
`url_uuid` char(36) NOT NULL DEFAULT '' COMMENT 'UUID',
`url_action` enum('1','2','3') NOT NULL DEFAULT '1' COMMENT '1注册2找回密码3用户关联',
`url_status` enum('1','2') NOT NULL DEFAULT '1' COMMENT '1有效2失效',
`url_string` varchar(200) NOT NULL COMMENT 'URL串',
`url_email` varchar(32) NOT NULL COMMENT 'URL发送邮箱',
`lalala_bookuser` int(11) DEFAULT NULL,
PRIMARY KEY (`url_uuid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `lalala_url`
--

INSERT INTO `lalala_url` (`url_uuid`, `url_action`, `url_status`, `url_string`, `url_email`, `lalala_bookuser`) VALUES
('ad9b3965-df82-102d-9e75-7ba8d845cd38', '1', '1', 'http://www.52lalala.com', '273295130@qq.com', NULL),
('d5d26658-df82-102d-9e75-7ba8d845cd38', '1', '1', 'http://www.52lalala.com', 'b.zhao1@gmail.com', NULL),
('dfec2658-df82-102d-9e75-7ba8d845cd38', '3', '2', 'http://127.0.0.1/52lalala/main-home-booktobook.html?action=booktobook&isactive=1&urlkey=dfec2658-df82-102d-9e75-7ba8d845cd38', '273295130@qq.com', 3),
('e3a271b1-df82-102d-9e75-7ba8d845cd38', '3', '2', 'http://127.0.0.1/52lalala/main-home-booktobook.html?action=booktobook&isactive=1&urlkey=e3a271b1-df82-102d-9e75-7ba8d845cd38', '273295130@qq.com', 4),
('720bd1b1-df83-102d-9e75-7ba8d845cd38', '1', '1', 'http://www.52lalala.com', 'dsfs@das.com', NULL),
('8907db90-df83-102d-9e75-7ba8d845cd38', '1', '1', 'http://www.52lalala.com', 'sdfs@sd.com', NULL),
('496352cf-f550-102e-a63b-85520c47416f', '1', '1', 'http://www.52lalala.com', 'best_mrzhao@163.com', NULL);

具体的业务逻辑你可以看下
https://raw.github.com/ftwbzhao/52lalala/master/system/application/models/email_model.php
页: 1 [2]
查看完整版本: CI中做用户注册时发送确认邮件,待服务器收到确认链接才确