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

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

1、通用方法编写

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

<?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方法封装

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层,主要用于一些数据操作

<?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);
	}
}
?>

  

    登录功能后端实现逻辑

<?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登录逻辑实现

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

时间: 2024-10-13 01:17:06

前端到后台ThinkPHP开发整站(2)的相关文章

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

今天周五了,这个项目做了五个晚上了,明天周末不用上班有一整天的时间来结束这个项目了,今晚主要把后台界面给弄出来了. 大概的整个后台界面就是这个样子了,接下来的工作就是搬砖了,一个个菜单功能填上去就是了. 还有补充了下多个公共方法,为后面菜单开发而准备. <?php /** * JSON数据返回 */ function jsonResult($status,$message,$data){ $result=array( 'status'=>$status, 'message'=>$mess

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

1.前言: 我个人从来没有写过博客文章,作为一个程序员没有自己的博客算是一个合格的程序员,所以我地想想也要经营起一个的博客,做一个小项目,写这博客算就做这个项目的一个项目笔记吧!现在自学着ThinkPHP,就借此框架做一个CMS系统.废话不多说了,赶紧进入学习了. 2.需求分析: 功能分析:  一.登录退出功能.  二.菜单功能:涉及前端菜单导航设置.  三.文章管理:文章编写,编辑插件掌握,异步图片上传.  四.推荐位管理:让用户自行设定首页推荐文章显示的设定.  五.用户管理:管理后台登录的

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

今晚继续我的这个项目的开发,今晚也是写的不多,主要写了一个菜单管理功能的CURD方法,前端界面还没有进行编写. 菜单管理Model层的代码: <?php namespace Common\Model; use Think\Model; class MenuModel extends Model{ private $_db=''; public function __construct(){ $this->_db=M("menu"); } /** * 插入菜单数据 */ pu

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

继续我的这个项目的第三晚的开发了,时间比较少,今晚写的代码不多,今晚仍然是造轮子写一个公共的控制器和一个公共的JS.直接上代码吧! 以下是一个公共的控制器,后台控制器都继承于它,构造函数中进行验证当前用户是否登录状态和提供快获取当前登录用户的数据. <?php namespace Admin\Controller; use Think\Controller; /** * 后台管理公共控制器 */ class CommonController extends Controller{ public

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

今晚我继续这个项目的前台开发,把前台的做出来了,现在项目进行一个收尾工作了,还有栏目页和一个文章页的开发,做完这两个算是完成了.说到这里感觉有点松懈了,把剩下两个功能页面做完在吹吧,先看看今天弄的代码吧! 前台公共控制器: <?php namespace Home\Controller; use Think\Controller; class CommonController extends Controller { public function __construct() { header(

前端后台ThinkPHP开发整站

课程目录及下载链接: 第1章 课程简介介绍singcms内容管理系统,系统中各功能模块展示,技术点介绍及课前准备.第2章 需求分析分析系统中的所有功能,设计系统中的数据库表.第3章 thinkphp介绍ThinkPHP框架介绍.第4章 后台登录功能介绍后台登录功能,数据校验,dialog插件介绍,layer插件介绍以及利用session失效处理退出登录第5章 菜单管理介绍后台入口文件的优化,公共文件的引入,菜单的添加.修改.删除功能,菜单列表分页及排序等功能的实现.第6章 文章管理介绍图片异步上

前端资源多个产品整站一键打包&amp;包版本管理(一)

来新公司工作的第五个月.整站资源打包管理也提上了日程. 问题: 首先.什么是整站的打包管理呢? 我们公司的几个重要产品都在同一个webapp里面,但是,不同的开发部门独立开发不同的产品,长期以来,我们就不知道其他部门的在做什么,或许我们正在头疼的问题,隔壁部门已经早早解决了呢? 各个部门的前端资源也是到处都是.难以管理.于是就提出了整站资源共享.整站资源共享的前提就是资源打包能统一.在几个产品里面.既有使用grunt的也有使用glup的,各个产品引入的包的版本也不一样. 目标: 统一打包工具 对

网页设计、web前端、后台的开发流程和注意事项 -----转

工作2年了,总感觉每次做项目的时候,都是赶时间,赶时间,加班几班,可是最后总结一看,百分之50的时间都浪费在做无用功上面了,甚至因为设计人员的失误,造成了前端和程序大量的返工,休整,加班,造成了开发人员的疲惫. 我个人总结了一下觉得认为比较好的能够节省时间效率的工作流程应该是: 1.产品经理做出整体的构思,提出明确需求,并且形成文档和demo 包括:网站的中心思想,即属于什么类型的,是电子商务还是企业网站还是门户网站等,不同类型的网站风格定位就不一样,一个网站需要注意的地方,例如登录注册的页面,

野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人(转)

本文摘自:<Web 全栈工程师的自我修养> 野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人.野生程序员有很强大的单兵作战能力,但是在编入“正规军”之后,可能会不适应新的做事方法. 遭遇“野生程序员” 腾讯公司内部的团队很多,在团队管理上有项目和专业两个维度.也就是说,有些团队是项目维度的,整个团队共同维护一个产品,成员来自不同的职业岗位:有些团队是专业维度的,比如一个组都是前端工程师,维护不同的产品. 因为前端组是设计部最接近后台技术的团队,所