您的位置 首页 php

thinkphp+ajax实现后台登录功能

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表单传递参数要进行序列化操作
 $ajia({
 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 checkLogin() {
 //验证是否恶意登录
 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.

文章来源:智云一二三科技

文章标题:thinkphp+ajax实现后台登录功能

文章地址:https://www.zhihuclub.com/152196.shtml

关于作者: 智云科技

热门文章

网站地图