PassAction.class.php
4.8 KB
1
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
header('Content-Type:text/html;charset=utf-8');
class PassAction extends CommonAction
{
public function _initialize() {
parent::_initialize();
//$this->checkLog(); //判断用户是否已经登录
$this->assign('header',$this->getHeader());//导航
$this->assign('postion',$this->getPostion());//当前位置
$this->assign('footer',$this->getFooter());//底部
}
/**
* 获取页面header
* @return array 导航
*/
private function getHeader($limit='0,8'){
$m=M('categoryinfo',null);
$field='CategoryID,categorynote,name,CategoryName,CategoryCode';
$order='CategoryOrder';
$where['CategoryCode']=array('like','___');
$where['display']=array('neq',1);
$data=$m->field($field)->where($where)->order($order)->limit($limit)->select();
return $data;
}
/**
* 获取页面postion
* @return array 当前位置
*/
private function getPostion($limit='0,8'){
$m=M('categoryinfo',null);
$field='CategoryID,categorynote,name,CategoryName,CategoryCode';
$order='CategoryOrder';
$where['CategoryCode']=array('like','___');
$where['display']=array('neq',1);
$data=$m->field($field)->where($where)->order($order)->limit($limit)->select();
return $data;
}
/**
* 获取页面footer
* @return array 导航
*/
private function getFooter($limit='1,7'){
$cate=$this->getHeader($limit); //获取导航分类
$m=M('categoryinfo',null);
$field='CategoryID,categorynote,name,CategoryName,CategoryCode';
$order='CategoryOrder';
$where['display']=array('neq',1);
foreach($cate as $k => $v){
$where['CategoryCode']=array('like',$v['CategoryCode'].'___');
$cate[$k]['child']=$m->field($field)->where($where)->order($order)->select(); //分类的子分类
unset($where['CategoryCode']);
}
return $cate;
}
/**
* 用户忘记密码
*/
public function index()
{
if($this->isPost())
{
if(!$_POST['email'] || !$_POST['email']){
$this->error('请填写身份证信息和邮箱');
}
$m=M('Webuser');
$where['idnumber']=array('eq',$_POST['idnumber']);
$where['email']=array('eq',$_POST['email']);
$onearr=$m->where($where)->field('id,idnumber,email,name')->find();
if(!$onearr){
$this->error('信息有误');
}
$title='升星时代夏令营用户密码重置';
$content='请在三个小时之内,点击以下连接进行重置密码<br><a href="http://'.$_SERVER['HTTP_HOST'].'/index.php?s=/Pass/editpass/em/'.base64_encode('1234'.$_POST['email']).'.html">重置密码</a>';
$a=$this->sendEmail($onearr,3,$title,$content); //发送email并且把email信息入库保存 1确定参营、2待录取
if($a){
$this->success('邮件已发送',U('Index/index'));
}else{
$this->error('邮件发送失败');
}
exit;
}
$this->display();
}
/**
* 用户修改密码
*/
public function editpass(){
if($this->isPost())
{
$m=M('Webuser');
$where['email']=array('eq',$_POST['ema']);
$onearr=$m->where($where)->field('id,password,email')->find();
if(!$onearr){
$this->error('邮箱信息有误');
}
$where['fortime']=array('egt',time());//在验证的有效期内
$yx_arr=M('Email')->where($where)->find();
if($yx_arr){
if($_POST['password']!=$_POST['password2'])
{
$this->error('两次密码不一致,请重新输入');
}
$where2['id']=array('eq',$onearr['id']);
$data['password'] = md5($_POST['password']);
$row=$m->where($where2)->save($data);
if($row){
$dd['fortime']='0';
M('Email')->where('email="'.$yx_arr['email'].'"')->save($dd);//清空有效期
$this->success('密码重置成功,请重新登陆!',U('Index/index'));
exit;
}else{
$this->error('密码重置失败');
exit;
}
}else{
$this->error('邮箱验证已超过有效期,请重新申请验证');
}
}
$this->display();
}
/**
* 给学生发送邮件,邮件信息并入库
* @param array $where 查询夏令营报名条件
* @param int $cate 邮件类型:1确定参营,2待录取 3忘记密码
* @param string $title 邮件标题
* @param string $content 邮件内容
* @return bool 成功ture,失败false
*/
private function sendEmail($date,$cate,$title,$content){
$data['sumid']=$date['id']; //学生id
//$data['uid']=$info['uid']; //学生id
$data['email']=$date['email']; //学生email
$data['cate']=$cate; //邮件各类:1确定参营,2待录取 3忘记密码
$data['title']=$title; //email 标题
$data['content']=$content; //email 内容
$data['addtime']=time();//发送邮件的时间
$data['fortime']=time()+3600*3;//验证有效期的时间 三个小时之内
if(sendMail($data['email'], $date['name'], $data['title'], $data['content']) === true){ //发送邮件成功
$lastid=M('Email')->add($data);
return true;
}else{ //发送失败
return false;
}
}
}