前端到后台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
前端到后台ThinkPHP开发整站(2)的更多相关文章
- 前端到后台ThinkPHP开发整站--php开发案例
前端到后台ThinkPHP开发整站--php开发案例 总结 还是需要做几个案例,一天一个为佳,那样才能做得快. 从需求分析着手,任务体系要构建好,这样才能非常高效. 转自: 前端到后台ThinkPHP ...
- 前端到后台ThinkPHP开发整站(6)
今天终于把整个后台管理系统弄好了,其实没什么难点,只是作为一个Thinphp学习的练手项目,这个项目,现在还只能算是做了一半,还有前台展示方面的功能没有完成.先过一遍后台的功能吧! 1.首页 2.菜单 ...
- 前端到后台ThinkPHP开发整站(5)
今天周五了,这个项目做了五个晚上了,明天周末不用上班有一整天的时间来结束这个项目了,今晚主要把后台界面给弄出来了. 大概的整个后台界面就是这个样子了,接下来的工作就是搬砖了,一个个菜单功能填上去就是了 ...
- 前端到后台ThinkPHP开发整站(4)
今晚继续我的这个项目的开发,今晚也是写的不多,主要写了一个菜单管理功能的CURD方法,前端界面还没有进行编写. 菜单管理Model层的代码: <?php namespace Common\Mod ...
- 前端到后台ThinkPHP开发整站(1)
1.前言: 我个人从来没有写过博客文章,作为一个程序员没有自己的博客算是一个合格的程序员,所以我地想想也要经营起一个的博客,做一个小项目,写这博客算就做这个项目的一个项目笔记吧!现在自学着ThinkP ...
- 前端到后台ThinkPHP开发整站(3)
继续我的这个项目的第三晚的开发了,时间比较少,今晚写的代码不多,今晚仍然是造轮子写一个公共的控制器和一个公共的JS.直接上代码吧! 以下是一个公共的控制器,后台控制器都继承于它,构造函数中进行验证当前 ...
- 前端到后台ThinkPHP开发整站(7)
今晚我继续这个项目的前台开发,把前台的做出来了,现在项目进行一个收尾工作了,还有栏目页和一个文章页的开发,做完这两个算是完成了.说到这里感觉有点松懈了,把剩下两个功能页面做完在吹吧,先看看今天弄的代码 ...
- 前端到后台ThinkPHP开发整站(完)
久违了,今天终于抽空把最后的写完了,这是这个项目的最后一篇文章了,把前台的栏目控制器和文章内容控制器的功能实现了. 栏目控制器: <?php namespace Home\Controller; ...
- 前端资源多个产品整站一键打包&包版本管理(一)
来新公司工作的第五个月.整站资源打包管理也提上了日程. 问题: 首先.什么是整站的打包管理呢? 我们公司的几个重要产品都在同一个webapp里面,但是,不同的开发部门独立开发不同的产品,长期以来,我们 ...
随机推荐
- python自动化运维学习第一天--day1
学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...
- H3CNE实验:配置基于端口划分的VLAN及Trunk
配置准备数据 | 设备名称 | IP地址 | VLAN网关 | 接口 | VLAN | |--------------|------------|-------------|----------|-- ...
- mysql性能监控工具
参考文档: http://www.linuxidc.com/Linux/2012-09/70459.htm 1.记录慢查询SQL #配置开启 (linux)修改my.cnf: log-slow-que ...
- python - bilibili(四)抓包数据乱码
上一篇文章中不知道大家发现端倪木有,两张照片对比很明显发现第一张是信息很明显的,第二张是乱码的. 为什么会出现这种情况?细心的童鞋可能发现是我们发送给服务器的请求连接的数据不同: 第一张图的信息是{& ...
- Immutable的认识
Facebook 工程师 Lee Byron 花费 3 年时间打造,与 React 同期出现,但没有被默认放到 React 工具集里(React 提供了简化的 Helper).它内部实现了一套完整的 ...
- 关于WIN7 内存占用很大的 问题svchost.exe
svchost.exe 是用来启动系统服务的,所以某个 svchost.exe 占用内存过大,可能就是它启动的那个服务占用内存过大,所以只要停止并禁用那个服务就行了. 一般来说占用内存最大的服务是 S ...
- Java Web使用Html5 FormData实现多文件上传
前一阵子,迭代一个线上的项目,其中有一个图片上传的功能,之前用的ajaxfileupload.js来实现上传的,不过由于ajaxfileupload.js,默认是单文件上传(虽然可以通过修改源码的方法 ...
- CJOJ 1131 机器分配 / Luogu 2066 机器分配 (动态规划)
CJOJ 1131 机器分配 / Luogu 2066 机器分配 (动态规划) Description Luogu: 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国 ...
- 使用mysqldump备份数据库
#! /bin/shday_str=`date +%j`day=`date +%Y%m%d`days_str=`echo "$day_str % 60"|bc`cd /home/d ...
- 事务之使用JDBC进行事务的操作
本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑 ...