前端到后台ThinkPHP开发整站(2)

我这次使用的ThinkPHP版本是:3.2.3版本,还有会使用到一个弹出层插件,叫 layer,官网地址是:http://layer.layui.com/。废话不多说,进入撸码环节。

1、通用方法编写

  这个是后端公共方法,现在暂时写两个方法,再往后开发想到有需要的话,就会继续添加更多的公共方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
/**
  * JSON数据返回
  */
function  jsonResult( $status , $message , $data ){
     $result = array ({
         'status' => $status ,
         'message' => $message ,
         'data' => $data
     });
     exit (json_encode( $result ));
}
 
/**
  * MD5加密密码
  */
function  getMd5Password( $password ){
     return  md5( $password .C( 'MD5_PRE' ));
}
?>

  公共弹出JS方法封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var  dialog = {
     /**
      * 错误弹出层
      * @param {String} 内容
      */
     error:  function (message) {
         layer.open({
             content: message,
             icon: 2,
             title:  '错误提示'
         });
     },
 
     /**
      * 成功弹出层
      * @param {String} 内容
      * @param {String} 跳转地址
      */
     success:  function (message, url) {
         layer.open({
             content: message,
             icon: 1,
             yes:  function () {
                 location.href = url;
             }
         });
     },
 
     /**
      * 确认弹出层
      * @param {String} 内容
      * @param {String} 跳转地址
      */
     confirm:  function (message, url) {
         layer.open({
             content: message,
             icon: 3,
             btn: [ '是' '否' ],
             yes:  function () {
                 location.href = url;
             }
         });
     },
 
     /**
      * 无需跳转到指定页面的确认弹出层
      * @param {string} 内容
      */
     toconfirm:  function (message) {
         layer.open({
             content: message,
             icon: 3,
             btn: [ '确定' ]
         });
     },
     
     /**
      * 加载层
      */
     load: function (){
         var  index = layer.load(1, {
             shade: [0.6, '#000' //0.1透明度的白色背景
         });
         return  index;
     }
}

2、登录功能:

    后台用户操作类,添加在Model层,主要用于一些数据操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
namespace  Common\Model;
use  Think\Model;
 
/**
  * 后台用户操作类
  */
class  AdminModel  extends  Model{
     private  $_db =null;
     
     public  function  __construct(){
         $this ->_db=M( 'admin' );
     }
     
     /**
      * 根据用户名获取用户信息
      * $username string 用户名
      */
     public  function  getAdminByUserName( $username = '' ){
         $ret = $this ->_db->where( "user_name='{$username}'" )->find();
         return  $ret ;
     }
     
     /**
      * 根据adminid更新数据
      * $id int id
      * $data object 需更新的数据
      */
     public  function  updateByAdminId( $id , $data ){
         if (! $id  || ! is_numeric ( $id )){
             throw_exception( "ID不合法" );
         }
         if (! $data  || ! is_array ( $data )){
             throw_exception( '更新的数据不合法' );
         }
         return  $this ->_db->where( "admin_id={$id}" ).save( $data );
     }
}
?>

  

    登录功能后端实现逻辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
namespace  Admin\Controller;
use  Think\Controller;
 
class  LoginController  extends  Controller{
     public  function  index(){
         if (session( 'adminUser' )){
             $this ->redirect( '/admin.php?c=index' );
         }
         $this ->display();
     }
     
     public  function  check(){
         $username = $_POST [ 'username' ];
         $password = $_POST [ 'password' ];
         if (!trim( $username )){
             return  jsonResult(0,  '用户名不能为空' );
         }
         if (!trim( $password )){
             return  jsonResult(0,  '密码不能为空' );
         }
         
         $ret =D( 'Admin' )->getAdminByUsername( $username );
         if (!ret ||  $ret [ 'status' ]!=1){
             return  jsonResult(0,  '该用户不存在' );
         }
         
         if ( $ret [ 'password' ]!=getMd5Password( $password )){
             return  jsonResult(0,  '用户名或密码错误' );
         }
         
         D( "Admin" )->updateByAdminId( $ret [ 'admin_id' ], array ( 'last_login_time' =>time()));
         session( 'adminUser' , $ret );
         return  jsonResult(1,  '登录成功' );
     }
}
?>

  前端JS登录逻辑实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var  login={
     check: function (){
         //获取登录页面中的用户名 和 密码
         var  username=$( 'input[name="username"]' ).val(),
             password=$( 'input[name="password"]' ).val();
         if (!username){
             dialog.error( '用户名不能为空' );
         }
         if (!password){
             dialog.error( '密码不能为空' );
         }
         
         var  url= "/index.php?m=admin&c=login&a=check" ,
             data={
                 "username" :username,
                 "password" :password
             };
         var  load = dialog.load();
         $.post(url,data, function (result){
             layer.close(load);
             if (result.status==0){
                 return  dialog.error(result.message);
             }
             if (result.status==1){
                 return  dialog.success(result.message, '/admin.php?c=index' );
             }
         }, 'JSON' );
     }
}

  今天就简单的做到这里了,项目的开始,造轮子的时间比较长,轮子造好了,车就可以开快了!(๑╹◡╹)ノ"""

源码地址:https://github.com/YoZiLin/TP-CMS

转载于:https://www.cnblogs.com/alinaxia/p/7204010.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值