thinkphp实现注册登录功能.docx

上传人:b****5 文档编号:11832187 上传时间:2023-04-05 格式:DOCX 页数:10 大小:17.31KB
下载 相关 举报
thinkphp实现注册登录功能.docx_第1页
第1页 / 共10页
thinkphp实现注册登录功能.docx_第2页
第2页 / 共10页
thinkphp实现注册登录功能.docx_第3页
第3页 / 共10页
thinkphp实现注册登录功能.docx_第4页
第4页 / 共10页
thinkphp实现注册登录功能.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

thinkphp实现注册登录功能.docx

《thinkphp实现注册登录功能.docx》由会员分享,可在线阅读,更多相关《thinkphp实现注册登录功能.docx(10页珍藏版)》请在冰豆网上搜索。

thinkphp实现注册登录功能.docx

thinkphp实现注册登录功能

thinkphp实现注册登录功能

创建数据库:

SETFOREIGN_KEY_CHECKS=0;

------------------------------

--Tablestructureforthink_users

------------------------------

DROPTABLEIFEXISTS`think_users`;

CREATETABLE`think_users`(

`userid`mediumint(8)unsignedNOTNULLAUTO_INCREMENTCOMMENT'用户id',

`companyid`mediumint(8)unsignedNOTNULLCOMMENT'公司id',

`pid`mediumint(8)NOTNULLCOMMENT'父id',

`username`char(20)NOTNULLDEFAULT''COMMENT'用户名',

`password`char(32)NOTNULLDEFAULT''COMMENT'密码',

`nickname`char(20)NOTNULLDEFAULT''COMMENT'昵称',

`regdate`int(10)unsignedNOTNULLCOMMENT'注册时间',

`lastdate`int(10)unsignedNOTNULLCOMMENT'最后一次登录时间',

`regip`char(15)NOTNULLDEFAULT''COMMENT'注册ip',

`lastip`char(15)NOTNULLDEFAULT''COMMENT'最后一次登录ip',

`loginnum`smallint(5)unsignedNOTNULLDEFAULT'0'COMMENT'登录次数',

`email`char(32)NOTNULLDEFAULT''COMMENT'邮箱',

`mobile`char(11)NOTNULLDEFAULT''COMMENT'手机号码',

`islock`tinyint

(1)unsignedNOTNULLDEFAULT'0'COMMENT'是否锁定',

`vip`tinyint

(1)unsignedNOTNULLDEFAULT'0'COMMENT'是否会员',

`overduedate`int(10)unsignedNOTNULLCOMMENT'账户过期时间',

`status`tinyint

(1)unsignedNOTNULLDEFAULT'0'COMMENT'状态-用于软删除',

PRIMARYKEY(`userid`),

UNIQUEKEY`username`(`username`)USINGBTREE,

KEY`email`(`email`)USINGBTREE

)ENGINE=MyISAMAUTO_INCREMENT=5DEFAULTCHARSET=utf8;创建模型(用于自动验证,自动完成):

namespaceHome\Model;

useThink\Model;

classUsersModelextendsModel{

/**

*自动验证

*self:

:

EXISTS_VALIDATE或者0存在字段就验证(默认)

*self:

:

MUST_VALIDATE或者1必须验证

*self:

:

VALUE_VALIDATE或者2值不为空的时候验证

*/

protected$_validate=array(

array('nickname','require','昵称不能为空!

'),//默认情况下用正则进行验证

array('username','require','用户名不能为空!

'),//默认情况下用正则进行验证

array('username','','该用户名已被注册!

',0,'unique',1),//在新增的时候验证name字段是否唯一

array('email','','该邮箱已被占用',0,'unique',1),//新增的时候email字段是否唯一

array('mobile','','该手机号码已被占用',0,'unique',1),//新增的时候mobile字段是否唯一

//正则验证密码[需包含字母数字以及@*#中的一种,长度为6-22位]

array('password','/^([a-zA-Z0-9@*#]{6,22})$/','密码格式不正确,请重新输入!

',0),

array('repassword','password','确认密码不正确',0,'confirm'),//验证确认密码是否和密码一致

array('email','email','邮箱格式不正确'),//内置正则验证邮箱格式

array('mobile','/^1[34578]\d{9}$/','手机号码格式不正确',0),//正则表达式验证手机号码

array('verify','verify_check','验证码错误',0,'function'),//判断验证码是否正确

//array('agree','is_agree','请先同意网站安全协议!

',1,'callback'),//判断是否勾选网站安全协议

array('agree','require','请先同意网站安全协议!

',1),//判断是否勾选网站安全协议

);

/**

*自动完成

*/

protected$_auto=array(

array('password','md5',3,'function'),//对password字段在新增和编辑的时候使md5函数处理

array('regdate','time',1,'function'),//对regdate字段在新增的时候写入当前时间戳

array('regip','get_client_ip',1,'function'),//对regip字段在新增的时候写入当前注册ip地址

);

/**

*判断是否同意网站安全管理协议

*@returnbool

*/

protectedfunctionis_agree()

{

//获取POST数据

$agree=I('post.agree',0,'intval');

//验证

if($agree){

returntrue;

}else{

returnfalse;

}

}登录注册:

namespaceHome\Controller;

useThink\Controller;

/**

*ClassLoginController

*@packageHome\Controller

*/

classLoginControllerextendsController{

/**

*用户登录

*/

publicfunctionlogin()

{

//判断提交方式

if(IS_POST){

//实例化Login对象

$login=D('login');

//自动验证创建数据集

if(!

$data=$login->create()){

//防止输出中文乱码

header("Content-type:

text/html;charset=utf-8");

exit($login->getError());

}

//组合查询条件

$where=array();

$where['username']=$data['username'];

$result=$login->where($where)->field('userid,username,nickname,password,lastdate,lastip')->find();

//验证用户名对比密码

if($result&&$result['password']==$result['password']){

//存储session

session('uid',$result['userid']);//当前用户id

session('nickname',$result['nickname']);//当前用户昵称

session('username',$result['username']);//当前用户名

session('lastdate',$result['lastdate']);//上一次登录时间

session('lastip',$result['lastip']);//上一次登录ip

//更新用户登录信息

$where['userid']=session('uid');

M('users')->where($where)->setInc('loginnum');//登录次数加1

M('users')->where($where)->save($data);//更新登录时间和登录ip

$this->success('登录成功,正跳转至系统首页...',U('Index/index'));

}else{

$this->error('登录失败,用户名或密码不正确!

');

}

}else{

$this->display();

}

}

/**

*用户注册

*/

publicfunctionregister()

{

//判断提交方式做不同处理

if(IS_POST){

//实例化User对象

$user=D('users');

//自动验证创建数据集

if(!

$data=$user->create()){

//防止输出中文乱码

header("Content-type:

text/html;charset=utf-8");

exit($user->getError());

}

//插入数据库

if($id=$user->add($data)){

/*直接注册用户为超级管理员,子用户采用邀请注册的模式,

遂设置公司id等于注册用户id,便于管理公司用户*/

$user->where("userid=$id")->setField('companyid',$id);

$this->success('注册成功',U('Index/index'),2);

}else{

$this->error('注册失败');

}

}else{

$this->display();

}

}

/**

*用户注销

*/

publicfunctionlogout()

{

//清楚所有session

session(null);

redirect(U('Login/login'),2,'正在退出登录...');

}

/**

*验证码

*/

publicfunctionverify()

{

//实例化Verify对象

$verify=new\Think\Verify();

//配置验证码参数

$verify->fontSize=14;//验证码字体大小

$verify->length=4;//验证码位数

$verify->imageH=34;//验证码高度

$verify->useImgBg=true;//开启验证码背景

$verify->useNoise=false;//关闭验证码干扰杂点

$verify->entry();

}

}登录模版:

<formaction="__SELF__"method="post">

<divclass="form-grouphas-feedback">

<inputtype="text"name="username"class="form-control"placeholder="用户名"/>

<spanclass="glyphiconglyphicon-userform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="password"name="password"class="form-control"placeholder="密码"/>

<spanclass="glyphiconglyphicon-lockform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="text"name="verify"class="form-control"placeholder="验证码"style="width:

200px;"/>

<spanclass="glyphiconglyphicon-qrcodeform-control-feedback"style="right:

120px;"></span>

<imgclass="verify"src="{:

U(verify)}"alt="验证码"onClick="this.src=this.src+'?

'+Math.random()"/>

</div>

<divclass="row">

<divclass="col-xs-8">

<divclass="checkboxicheck">

<label>

<inputtype="checkbox"name="remember"value="1">记住我

</label>

</div>

</div><!

--/.col-->

<divclass="col-xs-4">

<buttontype="submit"class="btnbtn-primarybtn-blockbtn-flat">登录</button>

</div><!

--/.col-->

</div>

</form>注册模版:

<divclass="register-box-body">

<pclass="login-box-msg">注册一个新用户</p>

<formaction="__SELF__"method="post">

<divclass="form-grouphas-feedback">

<inputtype="text"name="nickname"class="form-control"placeholder="昵称"/>

<spanclass="glyphiconglyphicon-leafform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="text"name="username"class="form-control"placeholder="用户名"/>

<spanclass="glyphiconglyphicon-userform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="password"name="password"class="form-control"placeholder="密码"/>

<spanclass="glyphiconglyphicon-credit-cardform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="password"name="repassword"class="form-control"placeholder="确认密码"/>

<spanclass="glyphiconglyphicon-checkform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="email"name="email"class="form-control"placeholder="邮箱"/>

<spanclass="glyphiconglyphicon-envelopeform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="text"name="mobile"class="form-control"placeholder="手机号码"/>

<spanclass="glyphiconglyphicon-phoneform-control-feedback"></span>

</div>

<divclass="form-grouphas-feedback">

<inputtype="text"name="verify"class="form-control"placeholder="验证码"style="width:

200px;"/>

<spanclass="glyphiconglyphicon-qrcodeform-control-feedback"style="right:

120px;"></span>

<imgclass="verify"src="{:

U(verify)}"alt="验证码"onClick="this.src=this.src+'?

'+Math.random()"/>

</div>

<divclass="row">

<divclass="col-xs-8">

<divclass="checkboxicheck">

<label>

<inputtype="checkbox"name="agree"value="1">我同意<ahref="#">网站安全协议</a>

</label>

</div>

</div><!

--/.col-->

<divclass="col-xs-4">

<buttontype="submit"class="btnbtn-primarybtn-blockbtn-flat">点击注册</button>

</div><!

--/.col-->

</div>

</form>

<ahref="login.html"class="text-center">我已经注册了账户</a>

</div>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1