本文实例为大家分享了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程序设计有所帮助。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“thinkphp框架下实现登录、注册、找回密码功能”评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
2026年07月07日
2026年07月07日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]