本系统采用mvc的设计模式,框架tp3.1 分为管理员端和学生端,若不能出现页面,将student文件放到浏览器根目录,配置一下虚拟主机即可出现 管理员端可以对学生的信息进行管理,增删改查,禁用(用到了jquery的ajax),同时可以查看学生们的考勤情况,今日考勤和历史考勤,甚至是今日签到和签退的详细数目。 学生端,学生登录之后可以进行签到和签退操作,可以查看自己的考勤记录。 管理员 登录模块
public function index(){
//如果是post请求则代表登录,否则显示登录界面 if (IS_POST) {
$user = $this->_post('user'); $pass = $this->_post('pass'); $vdcode = $this->_post('vdcode');
//判断用户是否为空
if (!$user) $this->error('请输入用户名!');
//判断密码是否为空
if (!$pass) $this->error('请输入密码!');
//判断验证码是否为空
if (!$vdcode) $this->error('请输入验证码!');
//验证验证码是否正确 if (session('verify') != md5(strtoupper($vdcode))) $this->error('验证码错
误!'); session('verify', null);//使验证码失效 $User = M('Users');//实例化对象 //查询用户信息
$user = $User->where("username = '" . $user .
"'")->field('user_id,username,role_type, password, is_enable, login_try_times, block_time, group_id')->find();
if (!$user) $this->error('用户不存在!', U('Login/index'));
//判断用户是否被禁用
if ($user['is_enable'] == 2) $this->error('你已经被禁用');
//将用户信息存入session
session('user_info',$user);
session('user_id',$user['user_id']);
//判断用户的角色,管理员则跳转到管理员端,学生则跳转到学生端
if($user['role_type'] == 1) $this->success('登录成功
','/AcpUser/get_student_list'); if($user['role_type'] == 2) $this->success('登录成功','/UcpSign/sign'); } $this->assign('head_title', '管理员登录'); $this->display(); }
修改密码 public function set_password() { //如果为空,则代表进入修改密码界面,而不是修改密码请求
$act = $this->_post('act');
if ($act == 'save') { $user_id = intval(session('user_id')); $old_password = $this->_post('old_password'); $this->assign('old_password', $old_password); $new_password = $this->_post('new_password'); $this->assign('new_password', $new_password); $confirm_password = $this->_post('confirm_password'); $this->assign('confirm_password', $confirm_password);
//旧密码不能为空
if (!$old_password) {
$this->error('请输入旧密码'); }
//新密码不能为空
if (!$new_password) {
$this->error('请输入新密码'); }
//对新密码的长度进行判断 if (strlen($new_password) < 6) {
$this->error('密码长度不得小于6位'); }
//两次输入的密码要一致
if ($confirm_password != $new_password) {
$this->error('验证密码和新密码必须一致'); }
//查询出用户信息
$user_obj = new UserModel();
$user_info = $user_obj ->where('user_id = ' . $user_id . ' AND password = "' . MD5($old_password) . '"') ->find();
//验证旧密码
if (!$user_info) {
$this->error('旧密码不正确'); }
$arr = array( 'password' => MD5($new_password) );
//保存用户修改之后的密码
$success = $user_obj->updateUserInfo('user_id = '.$user_id,$arr);
//判断用户是否修改成功
if ($success) {
$this->success('修改成功'); } else { $this->error('修改失败'); } }
//页面的标题
$this->assign('head_title', '修改密码');
$this->display('set_password'); }
添加学生
//添加学生 public function add_student(){
//如果不是POST请求则进入添加学生的界面 if(IS_POST){
$username = I('name'); $realname = I('realname'); $password = I('password'); $re_password = I('re_password'); $mobile = I('mobile'); $email = I('email'); $majors = I('majors'); $sex = I('sex');
//检测学号是否为空
if(empty($username)){
$this->error('学号不能为空'); }
//检测姓名是否为空
if(empty($realname)){
$this->error('姓名不能为空'); }
//如果密码为空,则将学号作为密码
if(empty($password)){
$password = $username; }
//检测邮箱是否为空
if(empty($email)){
$this->error('邮箱不能为空'); }
//如果密码不为空,确认密码不为空,则将判断两次的密码是否一致
if(!empty($password) && !empty($re_password)&& $password != $re_password){
$this->error('两次密码不一致'); }
//检测专业是否为空
if(empty($majors)){
$this->error('专业不能为空'); }
//检测手机号的格式是否正确
if($mobile && !checkMobile($mobile))
{ $this->error('对不起,手机号格式不正确'); }
//检测邮箱的格式是否正确
if(!$email || !checkEmail($email))
{ $this->error('对不起,请输入正确的邮箱地址'); } $data = array( 'username' => $username, 'realname' => $realname, 'password' => md5($password),//对密码进行md5加密
'mobile' => $mobile,
'sex' => $sex, 'role_type'=>2, 'is_enable'=>1, 'majors' => $majors ); $user_obj = new UserModel(); $s = $user_obj->add($data);//插入学生记录
if($s !== false){
//插入成功之后,跳转到学生列表界面
$this->success('添加成功','/AcpUser/get_student_list');
}else{