1.写在前面
这学期因为各种课内考试,竞赛活动,项目,(和女朋友约会 )"text-align: center">
实现效果如图
2.ThinkPHP中的MVC
M: Model 模型层(与数据库交互的持久层)
V: View 视图层(前端html,css,js)
C: Controller 控制器层
这里可以再单独封装一层 common 公共层,用于处理公用业务,或者是封装统一返回给前端的JSON数据格式。
控制器层 的正确写法是只接受参数,然后交给Model层去处理业务;
3.登陆思路
controller层接受username,password参数,交给Model层处理,Model层先将接受的username,password交给我们的自定义验证器去验证,验证通过后返回成功登陆标志, 这个标志可以任意,登陆成功就返回1,否则返回错误消息,返回给 controller 层,controller 层简单判断这个标志后,就传递JSON数据给前端,前端利用 controller 层传递过去的JSON数据中的 url 地址进行跳转即可
4.前端发起请求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0;"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/semantic-ui/2.2.10/semantic.min.css" rel="external nofollow" > <link rel="stylesheet" type="text/css" href="/static/css/me.css" rel="external nofollow" > <script src="/UploadFiles/2021-04-02/jquery-3.5.1.min.js">5.Common.php
<"code" => $code, "msg" => $msg, "data" => $data ]; return json($result,$httpStatus); }6.LoginController.php
<"code":-1,"msg":$flag,"data":null} return show(-1,$flag,null); } //能到这一步说明验证通过,将用户信息存入 Session 中存储起来 Session::set('user',$user->getUserByUserName($username)); // url: '/admin.login/toAdminIndex' return show(1,'登陆成功!','/admin.login/toAdminIndex'); } }7.UserModel.php
<"用户名不能为空!","用户名或密码错误!"等 return $e->getError(); } //验证通过返回1,也可以是其他数字,任意,只要和 controller层对接好就行 return 1; } }8.LoginValidate.php
<"username" => username, // "password" => password, // ] public function checkUserExist($value){ $model = new User(); $user = $model->getUserByUserName($value['username']); if($user == null){ return false; } //前端传过来的密码需要 加密后 才可以正确与数据库中的密码匹配 if($user['password'] != md5($value['password'])){ return false; } return true; } }结尾
ThinkPHP6.0使用了崭新的门面设计模式,对于设计模式具体在应用到工程代码中的能力还需要进一步的提高
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“ThinkPHP6.0如何利用自定义验证规则规范的实现登陆”评论...