用户
 找回密码
 入住 CI 中国社区
搜索
12
返回列表 发新帖
楼主: a306211321
收起左侧

[HELP] CI中做用户注册时发送确认邮件,待服务器收到确认链接才确

[复制链接]
发表于 2012-9-7 15:46:34 | 显示全部楼层
我的思路:
1、用户注册之后发送激活邮件(此时用户为已注册但不能登录)
2、通过用户点击邮件激活帐户(验证生成的字符串和数据库里的帐户是否一致)

在表里增加一个验证字符串的字段即可。
发表于 2013-7-2 11:36:26 | 显示全部楼层
解决思路:
用户注册的时候先存库,同时user表有一个active字段,存放一段加密的随机码。
当用户注册成功的时候,先把这串随机码写进数据库,然后再以邮件发送验证地址加这串随机码发送到用户注册的邮箱上。
用户登录邮箱点击验证,先判断用户的随机码是否与该用户数据库中随机码一致,如果是,则证明邮箱属于该用户,验证就通过了,通过之后,将active置空或者设成1,这样每次用户登录的时候先判断该用户的active的值是否为1,如果不是,说明未验证,这个时候就通知他要么登录邮箱验证,要么重新发送邮件之类的。
你还可以在表中加一个验证时效字段,如果超过这个时效,再重新生成一个随机码,提示用户该链接失效
发表于 2013-7-4 10:10:52 | 显示全部楼层
我当时的表结构
SQL复制代码
 
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/ ... els/email_model.php

本版积分规则