0.先搭建登录
0.1在应用公共文件(common.php)中创建登录方法
function doLogin(){
//进行session判断 首先要建立session值
$id=Session::has('id');
$url=url('index.php/admin/index/login');
if(!$id){
//以下跳转到登录页面
header('location:'.$url);
}
}
0.2 首页的控制器中 index方法中写入dologin()方法
public function index(){
doLogin();
return view('index');
}
0.3 控制器中开始搭建login方法和loginout方法
0.3.1 login方法登录方法:验证登录页面传值,验证通过即登陆成功->跳转首页,验证失败->报错误内容(tp5.1为跳转,建议使用js搭建页内提示)->再次跳转登录页面。
具体代码如下:(mvc模式->c层映射到v层页面->表单输入数值->传输的c层中->c层方法调用m层方法->返回到c层->根据返回结果c层进行下一步操作)
controller层:
public function login(){
if(input('sub')){ //如果view层摁下了提交按钮,此处名字与submit标签内名字相同 没有按下按钮则跳转到登录页面
//创建变量
$name=input('name');
$pwd=sha1(input('pwd'));
$model=new LoginModel();
$value['name']=$name;
$value['pwd']=$pwd;
$rs=$model->check($value);
if ($rs['name']){
//创建session
Session::set('id',$rs['id']);
Session::set('id',$rs['name']);
$this->success('登陆成功','index');
}else{
$this->error('用户名或密码错误','login');
}
}else{
return view('login')
}
}
model层(一下为完整代码):包含check方法,一个接值。接值为一个数组,包含用户名和密码用于数据库查询是否有对应。
<?php
namespace app\admin\model;
use think\Model;
class LoginModel extend Model{
public function check($value){
return $this->where($value)->find();
}
}
view:仅核心表单代码
<form method="post" action="{:url('index.php/admin/index/login')}">
<div class="panel loginbox">
<div class="text-center margin-big padding-big-top"><h1>后台管理系统</h1></div>
<div class="panel-body" style="padding:30px; padding-bottom:10px; padding-top:10px;">
<div class="form-group">
<div class="field field-icon-right">
<input type="text" class="input input-big" name="name" placeholder="登录账号" data-validate="required:请填写账号" />
<span class="icon icon-user margin-small"></span>
</div>
</div>
<div class="form-group">
<div class="field field-icon-right">
<input type="password" class="input input-big" name="pwd"