PassAction.class.php 4.8 KB
<?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;
		}
	}

}