本文实例为大家分享了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程序设计有所帮助。