本文实例为大家分享了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程序设计有所帮助。
相关文章
猜你喜欢
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-27 40
-
2025-05-25 73
-
2025-05-29 95
-
2025-05-29 63
-
2025-05-29 25
热门评论