tp5框架實現登錄功能

TP5框架實現登錄功能

安裝TP框架

使用最簡單的安裝方式,直接從官網下載解壓,將壓縮包裏的文件複製到項目目錄下。
管網地址:http://www.thinkphp.cn/down.html
安裝完框架的目錄如圖所示
目錄圖

添加控制器

在application\index\controller目錄下新建Login.php,主要用來實現登錄功能的業務邏輯。代碼如下:

<?php
namespace app\Index\controller;
use think\Controller;
use app\index\model\Admin;
class Login extends Controller
{
	public function index()
	{
		return $this->fetch('login');
	}
}      

創建登錄模型

在這我用的是事先準備好的自適應的登錄頁面只需要將HTML文件、CSS文件和JS文件導入相應的位置並且配置常亮用來引入樣式的文件路徑。(需要登錄頁面模板的可以評論郵箱)

  1. 將login.html放入index模塊下view\login文件下。如果沒有此文件新建相應文件即可。
  2. 將準備好的fonts、style文件放入public\static\index目錄下(如果沒有此文件新建相應文件即可)。
  3. 導入好的目錄爲:
    在這裏插入圖片描述
    導入完文件之後的頁面是:
    首次登錄頁面
    現在雖然我們可以顯示頁面但是頁面的樣式還沒有成功引入進來。

配置常亮引入樣式文件

  1. 在public文件下的index.php中定義常量
define('SITE_URL','http://127.0.0.1/tptest');
  1. 在application\index下新建配置文件config.php,並且配置常量。
<?php
return [
	'view_replace_str' =>[
		'__PUBLIC__'=>SITE_URL.'/public/static/index',
	],
];
  1. 在login.html裏面添加常量引入樣式文件,代碼:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><!--Head--><head>
    <meta charset="utf-8">
    <title>登錄</title>
    <meta name="description" content="login page">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <!--Basic Styles-->
    <link href="__PUBLIC__/style/bootstrap.css" rel="stylesheet">
    <link href="__PUBLIC__/style/font-awesome.css" rel="stylesheet">
    <!--Beyond styles-->
    <link id="beyond-link" href="__PUBLIC__/style/beyond.css" rel="stylesheet">
    <link href="__PUBLIC__/style/demo.css" rel="stylesheet">
    <link href="__PUBLIC__/style/animate.css" rel="stylesheet">
</head>
<!--Head Ends-->
<!--Body-->

<body>
    <div class="login-container animated fadeInDown">
        <form action="" method="post">
            <div class="loginbox bg-white">
                <div class="loginbox-title">SIGN IN</div>
                <div class="loginbox-textbox">
                    <input value="admin" class="form-control" placeholder="username" name="username" type="text">
                </div>
                <div class="loginbox-textbox">
                    <input class="form-control" placeholder="password" name="password" type="password">
                </div>
                <div class="loginbox-submit">
                    <input class="btn btn-primary btn-block" value="Login" type="submit">
                </div>
            </div>
                <div class="logobox">
                    <p class="text-center">第一個登錄頁面</p>
                </div>
        </form>
    </div>
    <!--Basic Scripts-->
    <script src="__PUBLIC__/style/jquery.js"></script>
    <script src="__PUBLIC__/style/bootstrap.js"></script>
    <script src="__PUBLIC__/style/jquery_002.js"></script>
    <!--Beyond Scripts-->
    <script src="__PUBLIC__/style/beyond.js"></script>




</body><!--Body Ends--></html>
  1. 填完之後的頁面是:
    登錄頁

後臺代碼實現

  1. 數據處理M層,在index模塊下model文件夾下新建Admin.php,代碼如下:
namespace app\index\model;
use think\Model;
use think\Db;
class Admin extends Model
{
	public function login($data){
		$user=Db::name('admin')->where('username','=',$data['username'])->find();
		if($user){
			if($user['password'] == md5($data['password'])){
				session('username',$user['username']);
				session('uid',$user['id']);
				return 3; //信息正確
			}else{
				return 2;//密碼錯誤
			}
		}else{
			return 1;//用戶不存在
		}
	}
}
  1. C層修改代碼實現業務邏輯,Login.php代碼如下:
<?php
namespace app\Index\controller;
use think\Controller;
use app\index\model\Admin;
class Login extends Controller
{
	public function index(){
		if(request()->isPost()){
			$admin=new Admin();
			$data=input('post.');
			$num=$admin->login($data);
			if($num==3){
				$this->success('信息正確,正在爲您跳轉','index/index');
			}else{
				$this->error('用戶名或密碼錯誤');
			}
		}
	}
	return $this->fetch('login');
}

創建數據庫,配置數據庫

根據自己的需求建立數據表連接,並在配置文件裏配置數據庫。就可以實現登錄功能了。

如果想獲取數據庫文件或頁面模板可以評論郵箱,會私信發給你

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章