layer ajax使用_thinkphp+ajax实现后台登录功能

本文通过实例代码介绍了如何利用layer弹框插件和ajax技术在ThinkPHP框架下实现后台登录功能,直接展示关键代码。
摘要由CSDN通过智能技术生成

711e342b4d0d7dff262ce7091366f4d1.png

ajax登录功能的实现(话不多说,上代码)

1、前端部分(form表单执行登录按钮类型需要使用button类型,否则submit会重复提交刷新.)
 <form method="post" class="login-form" >
 <div id="itemBox" class="item-box">
 <div class="item">
 <i class="icon-login-user"></i>
 <input type="text" name="username" placeholder="请填写账号" autocomplete="off" />
 </div>
 <span class="placeholder_copy placeholder_un">请填写账号</span>
 <div class="item b0">
 <i class="icon-login-pwd"></i>
 <input type="password" name="password" placeholder="请填写密码" autocomplete="off" />
 </div>
 <span class="placeholder_copy placeholder_pwd">请填写密码</span>
 <div class="item verifycode">
 <i class="icon-login-verifycode"></i>
 <input type="text" name="code" placeholder="请填写验证码" autocomplete="off">
 </div>
 <span class="placeholder_copy placeholder_check">请填写验证码</span>
 <div>
 <img class="verifyimg reloadverify" onclick="reload_verify('verifyimg')" alt="点击切换" src="{:captcha_src()}">
 </div>
 </div>
 <div class="login_btn_panel">
 <button class="login-btn" type="button">
 <span class="in"><i class="icon-loading"></i>登 录 中 ...</span>
 <span class="on">登 录</span>
 </button>
 <div class="check-tips"></div>
 </div>
 </form>
2、js-ajax部分代码:
 $(".login-btn").click(function(){
 var data = $(".login-form").serialize();//form表单传递参数要进行序列化操作
 $ajax({
 url:"{:url('login/doLogin')}",//url地址声明控制器和方法名称
 type:'post',
 data:data,
 dataType:'json', 
 success:funciton(data) {
 if(data.statues = =1) {
 layer.msg(data.msg,{icon:data.statues, time: 2000}, funciton() {
 window.location.href="/index.php/admin/Index/index";
 });
 }esle{
 alert(data.msg);
 window.location.reload();
 }
 }
 });
 })
3,控制器部分代码
 public function doLogin() {
 //验证是否恶意登录
 if (!$this->request->isPost()) {
 $this->error('非法登录!');
 }
 $param = $this->request->param();
 
 //密码md5双重加密
 $param['password'] = md5(sha1($param['password']));
//通过用户名和加密处理的密码去查询指定的数据库数据
 $info_result = $authAdminModel->getInfo(['username' => $param['username']], 'id,username,nick_name,password,store_id,loginip,logintime,loginnumber,state');
 if ($info_result['code'] !== 200) {
 Db::rollback();
 return json(["status"=>0,"msg"=>"查找用户错误"]);
 }
 if ($info_result['data']['info']['password'] !== $param['password']) {
 Db::rollback();
 return json(["status"=>0,"msg"=>"用户名或密码输入错误,请重新输入"]);
 }
 $user = $info_result['data']['info'];
 // 设置session
 Session::set('uid', $user['id']);
 Session::set('uname', $user['username']);
 Session::set('sid', $user['store_id']);
 Session::set('loginip', $user['loginip']);
 Session::set('logintime', $user['logintime']);
 $update_result = $authAdminModel->updateInfo(
 ['username' => $param['username']],
 [
 'loginnumber' => $user['loginnumber'] + 1,
 'logintime' => time(),
 'loginip' => $this->request->ip()
 ]
 );
 if ($update_result['code'] !== 200) {
 Db::rollback();
 return json(["status"=>0,"msg"=>"登录失败"]);
 }else {
 Db::commit();
 return json(["status"=>1,"msg"=>"登录成功"]);
 }
 return;
}
我想步入php后台管理的第一步,应该大部分的人都是会从登录注册做起.很多的时候我对于如何实现需求很明白,就是不知道怎么写代码,还是没有足够的积累量.今天是第一次发表文章.仅此纪念,2019-09-29.
如果有任何技术错误和问题,请大神们积极指正.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值