首先到官网下载thinkPHP的框架,解压到你的项目文件夹下面,如下图所示
接着你可以下载一个前端模板,也可以自己手写前端(这里是下载模板)
准备工作完成,下面进行开发:
第一步:把下载的前端模板中的lib,static文件复制到public/static目录下,如下图
第二步:在application/index下面能看到controller,model,view文件,(如果没有可自行创建)
第三步:导入模板
1.在application/index/view新建一个文件夹,user(注意要小写)用来存放和用户相关操作,如登录,注册,添加用户等
将下载好的前台模板中你需要的页面复制到application/index/view/user下面
2.在application/index/controller新建一个php文件User(首字母大写),用来存放和用户相关操作方法,如登录,注册,添加用户等方法
3.链接数据库:打开database.php文件,输入数据库信息
注意:view/user和controller/User名字要一致,区分大小写而且和数据库表一致
下面展示登录和首页代码。html中引入的css和js地址改成自己的
在application/index/controlle下新建一个base.php文件代码如下:
namespace app\index\controller;
use think\Controller;
use think\Session;
class Base extends Controller
{
protected function _initialize()
{
parent::_initialize();
define("USER_ID",Session::get('user_id'),true);
}
protected function isLogin()
{
if(!user_id)
{
// $this->error('用户未登录','user/login');
echo "<script>window.location.href='index/user/login'</script>";
return user_id;
}
}
protected function alreadyLogin()
{
if(user_id)
{
$this->error('用户已登录,请勿重复登录','index/index');
// return user_id;
}
}
}
controller中代码(前端页面名称,需要和渲染它的方法名相同):
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018\8\29 0029
* Time: 9:22
*/
namespace app\index\controller;
use app\index\controller\Base;
use think\Model;
use think\Db;
use think\Request;
use app\index\model\User as Usermodel;
use think\Session;
class User extends Base
{
public function login()
{
$this->alreadyLogin();
// return $this->fetch('login');
return $this->view->fetch();//渲染登录页面
}
public function checklogin(Request $request)//登录验证
{
$sta=0;
$result="";
$data=$request->param();
$user=Db::table('user')
->where('acc',$data['name'])
->find();
// var_dump($user);
// exit();
if($data['password']==$user['pass'])
{
if($user['auth_user']==1)
{
$sta=1;
$result="验证通过,点击确定";
Session::set('user_id',$user['id']);
Session::set('user_info',$user);
}
else{
$result="您没有权限登录";
}
}
else{
$result="用户名或密码错误";
}
return ['status'=>$sta,'message'=>$result,'data'=>$data];
}
public function logout()
{
Session::delete('user_id');
Session::delete('user_info');
// $this->success('注销登录,返回登录页面','user/login');
echo "<script>window.location.href='login'</script>";
}
public function admin_list(){
$this->view->count=count(Db::table('user')
->select());
$userName=Session::get('user_info.name');
$list=Db::table('user')
->select();
$this->view->assign('list',$list);
// var_dump($list);
// exit();
return $this->fetch('admin_list');//渲染用户列表页面
}
登录页面代码:
<body>
<input type="hidden" id="TenantId" name="TenantId" value="" />
<div class="header"></div>
<div class="loginWraper">
<div id="loginform" class="login-Box">
<h2 align="center">登录</h2>
<form class="form form-horizontal" action="index.html" method="post">
<div class="row cl">
<label class="form-label col-xs-3"><i class="Hui-iconfont"></i></label>
<div class="formControls col-xs-8">
<input id="name" name="name" type="text" placeholder="账户" class="input-text size-L">
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-3"><i class="Hui-iconfont"></i></label>
<div class="formControls col-xs-8">
<input id="password" name="password" type="password" placeholder="密码" class="input-text size-L">
</div>
</div>
<div class="row cl">
<div class="formControls col-xs-8 col-xs-offset-3">
<input name="login" id="login" type="button" class="btn btn-success radius size-L" value=" 登 录 ">
</div>
</div>
</form>
</div>
</div>
<script type="text/javascript" src="__STATIC__/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="__STATIC__/static/h-ui/js/H-ui.js"></script>
<script>
$(function(){
$("#login").on('click',function(event){
$.ajax(
{
type:"post",
url:"{:url('checklogin')}",//请求发送地址:User/checklogin方法
data:$("form").serialize(),
dataType:'json',
success:function (data) {
if(data.status==1)
{
// alert(data.message);
window.location.href="admin_list.html";
}
else{
alert(data.message);
}
}
})
})
})
</script>
</body>