本文实例为大家分享了thinkphp框架下使用ajax表单提交的登录、注册、找密码的实现方法,以及注册后的用户需后台审核。
user表的字段为id、num、password、name、email、addtime、status
具体代码如下
<?php namespace Home\\Controller; use Think\\Controller; class LoginController extends Controller { //处理登录 public function signin(){ if(IS_GET){ $this->display(); } if(IS_POST){ /* 调用登录接口登录 */ $User = M(\'user\') ; //I方法接收页面传递来的值 $num = I(\'num\') ; $password = I(\'password\') ; //查找user表中num等于$num的值 $datanum = $User->where(array(\'num\'=>$num))->find(); //判断$datanum的值 if ($datanum){ if (md5($password) === $datanum[\'password\']) { if ($datanum[\'status\'] == 0) { $this->error(\'用户处于未审核状态,请联系管理员\'); }elseif($datanum[\'status\'] == 2){ $this->error(\'用户处于禁用状态,请联系管理员\'); }else{ $this->autoLogin($datanum) ; //调用私有方法自动登录. $uid = $datanum[\'id\']; if($_SESSION[\'user_auth\'][\'uid\'] && $_SESSION[\'user_auth\'][\'role\'] == \'user\'){ $this->success(\'登录成功!\', U(\'Index/index\')); }else{ $this->error(\'存储错误.\'); } } }else{ $this->error(\'密码填写不正确,请重新填写\'); exit(); } }else{ $this->error(\'用户不存在,请注册\',U(\'signup\')); } } } public function autoLogin($user){ /* 记录登录SESSION */ $auth = array( \'uid\' => $user[\'id\'], \'num\' => $user[\'num\'], \'role\' => \'user\' , //记录用户类型 ); session(\'user_auth\', $auth); session(\'user_auth_sign\', data_auth_sign($auth)); } /* * 用户注册 */ public function signup(){ if(is_user_login()){ $this->redirect(\'Index/index\'); } if(IS_GET){ //注册页面 $this->display(); } if(IS_POST){ //判断用户 $data[\'num\'] = I(\'num\') ; $User = M(\'user\') ; $datanum = $User->where($data)->find(); if ($datanum){ $this->success(\'您已经注册过,请直接登录\',U(\'signin\')); }else{ $data[\'password\'] = md5(I(\'password\')); $data[\'name\'] = I(\'name\'); $data[\'email\'] = I(\'email\'); $data[\'addtime\'] = time(); $uid = $User->add($data); if($uid) $this->success(\'注册成功\',U(\'signin\')) ; else $this->error(\'注册失败\') ; } } } public function logout(){ if(is_user_login()){ $User = M(\'user\') ; session(\'user_auth\', null); session(\'user_auth_sign\', null); session(\'[destroy]\'); $this->success(\'登出成功!\', U(\'signin\')); } else { $this->redirect(\'signin\'); } } //忘记密码 public function wjpas(){ if(IS_GET){ $this->display(); } if(IS_POST){ $User = M(\'user\') ; $num = I(\'num\') ; $data[\'password\'] = md5(I(\'password\')) ; $email = I(\'email\') ; $datanum = $User->where(array(\'num\'=>$num))->find(); if ($datanum){ if ($email === $datanum[\'email\']) { $User->where(array(\'num\'=>$num))->save($data); // 根据条件更新记录 $this->success(\'密码修改成功\',U(\'signin\')) ; }else{ $this->error(\'邮箱填写不正确,请重新填写\'); exit(); } }else{ $this->error(\'用户不存在,请注册\',U(\'signup\')); } } } } ?>
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。
本文地址:https://www.stayed.cn/item/23812
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我