这篇文章主要介绍了thinkphp框架下实现登录、注册、找回密码功能的相关资料,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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程序设计有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version chinoise
Version chinoise, très simple à utiliser