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