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.