thinkphp框架下实现登录、注册、找回密码功能

2025-05-29 0 71

本文实例为大家分享了thinkphp框架下使用ajax表单提交的登录注册、找密码的实现方法,以及注册后的用户需后台审核。

user表的字段为id、num、password、name、email、addtime、status

具体代码如下

?

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
<?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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 thinkphp框架下实现登录、注册、找回密码功能 https://www.kuaiidc.com/98474.html

相关文章

发表评论
暂无评论