admin管理员组

文章数量:1532281

2024年6月8日发(作者:)

登录注册模块编写

登录注册模块编写

1、 登录模块

1.1 功能描述

该模块实现用户的登录操作,需要支持以下功能:

(1)用户可以通过用户名和密码登录系统;

(2)支持用户的自动登录,用户在登录时可以勾选“记住我”

可以少输入用户名密码;

(3)支持用户的忘记密码功能,如用户忘记密码时可以通过邮

箱重新设置密码。

1.2 技术实现

(1)表设计

用户表(user_info)

字段名称t 数据类型t 备注

user_idt intt 用户ID

user_namet varchar(50)t用户名

user_passt varchar(50)t用户密码

user_saltt varchar(50)t密码盐

login_timet datetimet 最后登录时间

(2)代码实现

以下是登录模块的实现代码:

//登录模块

- 1 -

public function login(){

//接收用户名

$username=I('me');

//接收密码

$password=I('rd');

//判断参数是否为空

if(empty($username)||empty($password)){

//返回错误信息

$this->error('用户名或密码不能为空!');

}

//根据用户名查询信息

$userInfo=M('user_info')->where(array('username'=>$username

))->find();

//判断用户是否存在

if(empty($userInfo)){

//返回错误信息

$this->error('用户信息不存在!');

}

//根据用户id获取用户的盐

$salt = $userInfo['user_salt'];

//计算加密后的密码

- 2 -

$user_pass=md5($password.$salt);

//判断密码是否正确

if($user_pass!=$userInfo['user_pass']){

//返回错误信息

$this->error('密码不正确!');

}

//登录成功,记录登录时间和ip

$data['login_time']=time();

$data['login_ip']=get_client_ip();

M('user_info')->where(array('user_id'=>$userInfo['user_id']

))->save($data);

//设置session

session('username',$userInfo['username']);

//记住我功能

if(isset($_POST['remember_me'])){

//设置cookie

$time=3600*24*7;

cookie('username',$userInfo['username'],$time);

}

//跳转到首页

$this->redirect('Index/index');

- 3 -

}

2、 注册模块

2.1 功能描述

该模块实现用户的注册操作,需要支持以下功能:

(1)用户可以通过用户名和密码登录系统;

(2)支持邮箱的注册,用户可以通过邮箱进行注册;

(3)支持手机号码的注册,用户可以通过手机号进行注册;

(4)支持用户使用第三方账号进行注册,如QQ,微信登录等

2.2 技术实现

(1)表设计

用户表(user_info)

字段名称t 数据类型t 备注

user_idt intt 用户ID

user_namet varchar(50)t用户名

user_passt varchar(50)t用户密码

user_saltt varchar(50)t密码盐

login_timet datetimet 最后登录时间

(2)代码实现

以下是注册模块的实现代码:

//注册模块

public function register()

{

- 4 -

//接收参数

$username=I('me');

$password=I('rd');

$repassword=I('word');

//判断参数是否为空

if(empty($username)||empty($password)||empty($repassword)){

//返回错误信息

$this->error('用户名和密码不能为空!

- 5 -

本文标签: 用户登录密码注册模块