技术心得记录:新闻cms管理系统(二)

简介: 技术心得记录:新闻cms管理系统(二)

1、页面准备:


(1)前端资源的导入:将准备好的页面添加到项目中,放到Public目录下(公共的页面样式、js、图片等资源)


(2)添加登录的视图模板


  将登录页面的视图放到Amin>View>Login>index.html中


<!DOCTYPE html

[/span>html lang="zh-CN"

[/span>head

[/span>meta charset="utf-8"

[/span>meta http-equiv="X-UA-Compatible" content="IE=edge"

[/span>meta name="viewport" content=""


[/span>meta name="description" content=""

[/span>meta name="author" content=""

[/span>link rel="icon" href=""

[/span>title


[/span>link href="/Public/css/bootstrap.min.css" rel="stylesheet"


[/span>link href="signin.css" rel="stylesheet"




[/span>body

[/span>style

.s_center {


margin-left: auto;


margin-right: auto;


}



[/span>div class="s_center container col-lg-6 "

[/span>form class="form-signin" enctype="multipart/form-data" method="post"

[/span>h2 class="form-signin-heading"

[/span>label class="sr-only"

[/span>input type="text" class="form-control" name="username" placeholder="请填写用户名" required autofocus

[/span>br />


[/span>label class="sr-only"

[/span>input type="password" name="password" id="inputPassword" class="form-control" placeholder="密码" required

[/span>br />


[/span>button class="btn btn-lg btn-primary btn-block" type="button" onclick="login.check()"



[/span>script src="/Public/js/jquery.js"




(3)添加登录的控制器和方法


  完成代码实现:(文件位置:Admin>Controller>LoginController.class.php)


<?php


namespace Admin\Controller;


use Think\Controller;


class LoginController extends Controller {


public function index(){


$this->display(); //默认加载View>Login>index.html


}


}


(3)浏览器访问


(4)页面显示


2、数据库准备


(1)数据库恢复: >mysql : source /var/www/html/cms.sql


(2)数据库配置:(位置:Common>Conf>config.php和db.php)


1)config.php配置


//允许加载其他配置文件,其文件名为(多个文件的文件名用逗号隔开)


'LOAD_EXT_CONFIG' => 'db'


2)db.php数据库配置


<?php


return array(


'DB_TYPE' => 'mysql',


'DB_HOST' => '127.0.0.1', //数据库服务器主机ip地址


'DB_USER' => 'root', //数据库用户名


'DB_PWD' => '', //数据库用户密码


'DB_PORT' => 3306, //数据库端口号


'DB_NAME' => 'cms', //数据库名


'DB_CHARSET' => 'utf8', //数据库编码


'DBPREFIX' => 'cms' //数据库前缀名


);


2、layer插件


(1)layer插件准备:


官方下载地址:


官方教程:


layer插件包括extend目录、skin目录和layer.js文件


完整文件放到项目下的dialog目录(位置: Public>js>dialog)


(2)插件二次封装:


为便于在此项目中使用,再对项目需要的弹出层进行二次封装,命名为dialog.js(位置:Public>js>dailog.js)


(3)常用弹出层:


1)错误弹出层


// 错误弹出层


error: function(message) {


layer.open({


content:message,


icon:2,


title : '错误提示',


});


},


2)成功弹出层


// 成功弹出层


success : function(message,url) {


layer.open({


content : message,


icon : 1,


yes : function(){


location.href=url;


},


});


},


3)确认弹出层


// 确认弹出层


confirm : function(message, url) {


layer.open({


content : message,


icon:3,


btn : 【'是','否'】,


yes : function(){


location.href=url;


},


});


}


4)无须跳转弹出层


//无需跳转到指定页面的确认弹出层


toconfirm : function(message) {


layer.open({


content : message,


icon:3,


btn : 【'确定'】,


});


}


(4)弹出层的调用:


1)引入本系统的类库dialog.js文件 (在Amin>View>Login>index.html中引入)


[/span>script src="/Public/js/dialog.js"

2)引入第三方插件layer.js文件(在Amin>View>Login>index.html中引入)


[/span>script src="/Public/js/dialog/layer.js"

3)调用(js文件)


dialog.error("这是弹出的消息内容");


3、数据校验


(1)数据提交的两种方式:


  1)同步提交数据:页面跳转(体验不好)


  2)异步提交数据:通过js的ajax请求,页面不跳转,异步请求地址


(2)异步请求的实现:


  1)jquery框架的ajax实现手册


  2).ajax()、.ajax()、.ajax()、? .get()、 $.post()三种方式的理解


(3)前端登录的业务处理:


1)js校验:(位置: Public>js>admin>login.js)


/


前端登录业务类


/


var login = {


check : function() {


// 获取登录页面中的用户名 和 密码


var username = $('input【name="username"】').val();


var password = $('input【name="password"】').val();


if(!username) {


dialog.error('用户名不能为空');


}


if(!password) {


dialog.error('密码不能为空');


}


var url = "/index.php?m=admin&c=login&a=check";


var data = {'username':username,'password':password};


// 执行异步请求 $.post


$.post(url,data,function(result){


if(result.status == 0) {


return dialog.error(result.message);


}


if(result.status == 1) {


return dialog.success(result.message, '/index.php?m=admin&c=index');


}


},'JSON');


}


}


2)html表单触发(Amin>View>Login>index.html文件)


[/span>button class="btn btn-lg btn-primary btn-block" type="button" onclick="login.check()"

3)login.js文件引入(在Amin>View>Login>index.html中引入)


[/span>script src="/Public/js/admin/login.js"

3)浏览器运行效果


(4)后端php业务处理:


1)check方法的数据校验:


$username = $_POST【'username'】;


$password = $_POST【'password'】;


if(!trim($username)) {


return show(0,'用户名不能为空');


}


if(!trim($password)) {


return show(0,'密码不能为空');


}


前端的数据校验是js实现的,其在浏览器中是可视的,用户是可看到的,为避免用户对修改js文件规避数据校验,所以必须在服务器端再次校验


show()公共方法的封装:(多处地方要用到,所以作为公共函数封装到Common/Common/function.php文件)


/展示数据


@param $status 状态码


@param $message 展示的消息内容


@param array $data


/


function show($status, $message,$data=array()) {


$result = array(


'status' => $status,


'message' => $message,


'data' => $data,


);


exit(json_encode($result));


}


相关文章
|
Web App开发 搜索推荐 Java
|
存储 SQL 安全
记录一次代审实战,熊海CMS代审日记
1.拿到源码并进行白盒测试 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。 白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。 "白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。 "白盒"法是穷举路径测试。
1917 0
记录一次代审实战,熊海CMS代审日记
|
API PHP 数据安全/隐私保护
MyCms 自媒体 CMS 系统 v3.1.0,新增商城接口
MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现。
209 0
MyCms 自媒体 CMS 系统 v3.1.0,新增商城接口
|
定位技术 PHP 开发者
MyCms 自媒体 CMS v3.0,资源推送优化,新增免费模板
MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现。MyCms 基于Apache2.0开源协议发布,免费且不限制商业使用,欢迎持续关注我们。
162 0
MyCms 自媒体 CMS v3.0,资源推送优化,新增免费模板
|
关系型数据库 MySQL PHP
MyCms 自媒体 CMS 系统 v2.8,支持织梦数据导入
MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现。
184 0
MyCms 自媒体 CMS 系统 v2.8,支持织梦数据导入
|
PHP 开发者
MyCms 自媒体 CMS 系统 v2.7,支持自定义页面
MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现。
142 0
MyCms 自媒体 CMS 系统 v2.7,支持自定义页面
|
前端开发 API PHP
MyCms 自媒体 CMS 系统 v2.5,后台一键升级更新
MyCms是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现。
167 0
MyCms 自媒体 CMS 系统 v2.5,后台一键升级更新
|
缓存 安全
开源内容管理系统 Joomla CMS 3.9.10发布
Joomla 3.9.10现已推出。这是针对3.x系列Joomla的安全修复程序版本,它解决了一个安全漏洞,包含30多个错误修复和改进。 什么是3.9.10?Joomla 3.9.10包含一个安全漏洞修复程序和一些错误和改进,包括: 安全问题已修复低优先级 - 子窗体字段中的Core - Filter属性允许远程执行代码(影响Joomla 3.
927 0
下一篇
无影云桌面