注册 -> 邮箱验证
通过钩子函数完成数据入库前后的操作
–Model1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* 插入的前置钩子函数在注册数据入库前,进行密码加密
* @param array &$data 表单提交过来的数据
* @param array $option 表名和模型名以及一些查询条件(如果有)
*/
public function _before_insert(&$data,$option){
$data['salt'] = uniqid();
$data['password'] = md5(md5($data['password']) . $data['salt']);
}
/**
* 插入的后置钩子函数,在数据真正入库之后会被调用
* @param array $data 存入数据库的数据,包含主键id
* @param array $option 表名和模型名
*/
public function _after_insert($data,$option){
$email_key = md5($data['id'] . C('EMAIL_KEY'));
$content = "尊敬的用户您好,欢迎注册京西购物网站!<br><a href='http://local.shop.com/index.php/Member/Member/active/id/'" .$data['id']. "email_key" . $email_key. " target='_blank'>请点击激活您的账户</a>";
sendMail($data['email'], '京西购物商城', $content );
}
–Controller1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 会员邮箱激活
public function active(){
$id = I('id');
$email_key = I('email_key');
$memberModel = D('Member');
// 验证用户id与用户秘钥是否匹配
if (md5($id . C('EMAIL_KEY')) == $email_key) {
$userinfo = $memberModel->find($id);
if ($userinfo) {
$where = array('id'=>$id);
// setField 返回更新信息影响的函数
$status = $memberModel->where($where)->setField('isactive', 1);
if ($status) {
return $this->success('用户激活成功', U('Home/Index/index'));
}else{
return $this->error('用户激活失败', U('Home/Index/index'));
}
}else{
$this->error('用户不存在', U('Home/Index/index'));
}
}else{
return $this->error('非法操作,该用户不存在',U('Home/Index/index'));
}
}
商品 -> 商品模块(简版)
1 |
|