对于想了解CMS系统:PHPCMSv9手机伪静态方法的读者,本文将是一篇不可错过的文章,我们将详细介绍maccms伪静态规则,并且为您提供关于CMS系统、CMS系统:iOS开发教程、CMS系统:PHP
对于想了解CMS系统:PHPCMS v9手机伪静态方法的读者,本文将是一篇不可错过的文章,我们将详细介绍maccms伪静态规则,并且为您提供关于CMS系统、CMS系统:iOS开发教程、CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁、CMS系统:phpcms v9 get调用热门文章的自定义调用办法(两种)的有价值信息。
本文目录一览:- CMS系统:PHPCMS v9手机伪静态方法(maccms伪静态规则)
- CMS系统
- CMS系统:iOS开发教程
- CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁
- CMS系统:phpcms v9 get调用热门文章的自定义调用办法(两种)
CMS系统:PHPCMS v9手机伪静态方法(maccms伪静态规则)
《CMS系统:PHPCMS v9手机伪静态方法》要点:
本文介绍了CMS系统:PHPCMS v9手机伪静态方法,希望对您有用。如果有疑问,可以联系我们。
1、打开/PHPcms/modules/wap/functions/global.func.PHP
找到里面的这两个函数,如下图所示的注释掉的那行代码,在下面加入一行代码.
- function list_url($typeid) {
- #return WAP_SITEURL."&a=lists&typeid=$typeid";
- return "/list-$typeid".'.html';
- }
- function show_url($catid, $id, $typeid='') {
- global $WAP;
- if($typeid=='') {
- $types = getcache('wap_type','wap');
- foreach ($types as $type) {
- if($type['cat']==$catid) {
- $typeid = $type['typeid'];
- break;
- }
- }
- }
- #return WAP_SITEURL."&a=show&catid=$catid&typeid=$typeid&id=$id";
- return "/show-$catid-$typeid-$id-1".'.html';
- }
CMS系统2、打开/PHPcms/modules/wap/index.PHP
找到第59行,在下面加入一行代码.
- #define('URLRULE', 'index.PHP?m=wap&c=index&a=lists&typeid={$typeid}~index.PHP?m=wap&c=index&a=lists&typeid={$typeid}&page={$page}');
- define('URLRULE', 'list-{$typeid}.html~list-{$typeid}-{$page}.html');
CMS系统3、添加伪静态规则,打开根目录的权限文件,添加如下代码
- RewriteRule ^list-([0-9]+)-([0-9]+) index.PHP?&a=lists&typeid=$1&page=$2
- RewriteRule ^list-([0-9]+) index.PHP?&a=lists&typeid=$1;
- RewriteRule ^show-([0-9]+)-([0-9]+)-([0-9]+) index.PHP?a=show&catid=$1&typeid=$2&id=$3;
CMS系统
CMS系统
第一天(day01)
1.CMS:内容(文章)管理系统
2.Maven:结构(以后大家使用maven:它可以帮我们自动导包,自动编译,规范代码,....)
src/main/java -> Java代码的存放位置
src/main/resources -> 资源文件的存放位置
src/test/java -> 测试代码的位置
src/test/resources -> 代码资源文件的位置
3.项目搭建的常规操作
建表(t_image),建domain(Images),dao,service,controller
web.xml,applicationContext.xml,applicationContext-mvc.xml
4.搞定页面(凡是WEB-INF中的页面都要通过Controller访问)
SystemController -> 进入后台的主页面
ImagesController -> 进入轮播图(CRUD)管理页面
5.以后怎么和前端合作
5.1 前端会把html做好,然后我们把他做的页面搞到我们的项目中来(图片,js,css的引入路径都要进行修改)
5.2 iframe -> 可以把其它的页面直接放入到页面中来
<iframe src="..." />
5.3 注意点:如果咱们配置有上下文路径:所有跳转的路径前:${pageContext.request.contextPath }
6.完成图片上传
6.1 form中需要配置 method="post" enctype="multipart/form-data"
6.2 后台要根据上传的文件名进行接收
①.修改名称 ②.获取路径 ③.保存图片(fileImg.transferTo(file))
④.保存Images对象(绝对路径的地址,名称)
第三天(day03) F12
工作(job)的CRUD
一. 以后开发要注意,一个domain的属性(一张表中的列)在开发的时候一定要先把它搞清楚
1.这个属性的意思(含义)
2.研究这个属性的类型
3.这个属性的值从哪里来???
private Integer id;
//职位标题(Java高级工程师,会计,育儿嫂)
private String title;
//工作地址(北京,上海,工龙村)
private String address;
//工作地址对应的id
private Integer address_id;
//招聘人数
private Integer jobnum;
//待遇(工资)
private Integer treatment;
//职位描述(相关专业,长得帅)
private String describes;
//职位要求(会CSS,JS,Java,Spring等技术)
private String requires;
//静态网站的地址(静态化的效果,明天再讲)
private String htmlurl;
//职位类型(1->全职,0->兼职)
private Integer positiontype;
//是否启用
private Boolean isenabled;
二.完成后端的CRUD【和前面做的是一样的】
三.回显功能
<select id="address" name="address_id">
<c:forEach items="${addressList}" var="address">
<option value="${address.id}"
<c:if test="${address.id==job.address_id}">
selected
</c:if>
>${address.name}</option>
</c:forEach>
</select>
四.创建视图
相当于是一个假表
create view 视图名称 as select....
可以直接查询视图
select * from 视图名称
五.模板技术
动态网页(数据可变)与静态网页(访问快,SEO排名高)
动态网页静态代(伪静态[只改后缀],真静态)
用到模板技术:数据+模板=输入文本
freemarker【ftl】,velocity【vm】
F12->看js有没有错,再看网络传参有没有问题
如果前端没有问题,问题就在后端(有没有接收参数,如果接收到了,有没有调用方法,SQL有没有写对,数据有没有返回)
没有找到 -> 比较法,打印法,删除法
第四天(day04)
freemarker:是比较流行的一个模板技术【ftl】
使用freemarker的步骤(以后只需要百度查找即可)
1.导包(freemarker是一个小框架)
2.创建一个配置对象Configuration(加个版本)
3.设置加载路径
4.设置字符集(默认)
5.创建模板(准备一个ftl模板)
6.准备数据(Map,对象)
7.数据+模板=输出文件(Writer)
案例一:代码生成器(半成品) -> 下一个项目会有一个插件
案例二:动态网页静态化(添加,修改)
修改的时候需要把原生的那个静态化页面删除
删除数据的时候也要把静态化页面删除
需要把路径记录下来,才可能去找到这个静态化页面
第四天(day05)
一.高级查询
1.1 拼接where条件的字符串(第一个条件前面加where,其它的条件前面加and)
a. 先加一个 where 1=1 -> 影响查询性能
b. 准备一个标签 flag=true -> true就是where,false就加and
默认是true,每一次就加where,加完后把它改回成false(第n次就改加使用and)
代码量比较大
c. 准备一个List<String>,装的就是每一个条件(前面没有where与and)
遍历这个集合的时候,第一次加where,其它的情况加and
在理解上,使用就还是有点麻烦
d. 把第一个and替换成where -> 比较简单,不影响性能
whereSql.replaceFirst("and", "where");
1.2 dao中需要加上where条件
查询总条数与查询当前页的数据 -> where条件是一样的
二.高级查询+分页
之前的分页是直接一个超连接,发送请求就可以成功了。但是当我们有了高级查询条件后,这个分页会导致高级查询的条件丢失!
解决方案:点击分页的时候提交表单(表单中就有咱们的分页以及查询数据)
2.1 在form中加上了一个隐藏域 (当前页)
注意:这里必需给一个初始页数
<input type="hidden" name="currentPage" id="currentPage" value="1" />
2.2 修改咱们的a标签(访问我们的一个js方法)
<a href="javascript:goPage(传的页数);">上一页/下一页/..</a>
2.3 完成goPage方法
function goPage(page){
//1.把当前页传到隐藏域中
document.getElementById("currentPage").value= page;
//2.提交表单
document.getElementById("表单id").submit();
}
三.登录功能(Spring的拦截器)
select * from t_user where username=? and password=?
3.1 登录的功能:
1.获取前台传过来的用户名与密码
2.根据用户名与密码到数据库中查询当前登录用户
3.如果查询到了用户 -> 把用户存在sessoin中,跳转到主页面
如果没有查询到用户 -> 跳转到登录页面
3.2 登录的拦截
1.准备一个Spring的拦截器
class LoginInterceptor 实现 HandlerInterceptor
preHandle:在执行方法之前进行的拦截
返回false代表不放行
返回true代表放行
2.对拦截器进行相应的配置(applicationContext-mvc.xml)
<mvc:interceptors>
<mvc:interceptor>
<!--你要拦截的是哪些请求 -->
<mvc:mapping path="/**"/>
<!--配置你不拦截的请求 -->
<mvc:exclude-mapping path="/login"/>
<mvc:exclude-mapping path="/assets/**"/>
<!-- 所有请求都会经过这个拦截器 -->
<bean/>
</mvc:interceptor>
</mvc:interceptors>
3.在拦截器中实现功能
到session中拿当前登录用户
如果没有拿到 -> 跳回登录页面
如果拿到,直接放行
CMS系统:iOS开发教程
《CMS系统:iOS开发教程》要点:
本文介绍了CMS系统:iOS开发教程,希望对您有用。如果有疑问,可以联系我们。
公告模块列表调用比较简单,动态调用如下:
CMS教程 {pc:announce action="lists" siteid"$siteid" num"2"}loop $data $r<a href"{APP_PATH}index.PHP?m=announce&c=index&a=show&aid={$r['aid']}">{$r['title']}</a>{/loop} {/}我们直接修改链接为静态再配合伪静态就可以达到我们要的效果,如:
"{APP_PATH}announce-{$r['aid']}.html"在.htaccess里面增加:
CMS教程 RewriteRule^(.*)announce-([0-9]+).html$ $1/index\.PHP\?m=&cindexshowaid$2好了,我们再看看链接是不是变成了
CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁
《CMS系统:PHPCMS V9 /PHPcms/modules/member/index.PHP PHPcms注入漏洞修复补丁》要点:
本文介绍了CMS系统:PHPCMS V9 /PHPcms/modules/member/index.PHP PHPcms注入漏洞修复补丁,希望对您有用。如果有疑问,可以联系我们。
漏洞名称:PHPcms注入漏洞
文件路径:/PHPcms/modules/member/index.PHP
修复方法来源于网络,由风信网整理提供.
源代码大概615行:
if(empty($_SESSION['connectid'])) {
//判断验证码
$code = isset($_POST['code']) && trim($_POST['code']) ? trim($_POST['code']) : showmessage(L('input_code'),HTTP_REFERER);
if ($_SESSION['code'] != strtolower($code)) {
$_SESSION['code'] = '';
showmessage(L('code_error'),sans-serif; line-height: 30px;">}
$_SESSION['code'] = '';
$username = isset($_POST['username']) && is_username($_POST['username']) ? trim($_POST['username']) : showmessage(L('username_empty'),sans-serif; line-height: 30px;">$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),sans-serif; line-height: 30px;">针对phpsso模块添加过滤代码,最好的方式应该是将转义和过滤放在数据库操作的前一步,这样可以极有效缓解sql注入带来的问题
修改代码:
$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),sans-serif; line-height: 30px;">改为:
$password = isset($_POST[‘password‘]) && trim($_POST[‘password‘]) ? addslashes(urldecode(trim($_POST[‘password‘]))) : showmessage(L(‘password_empty‘),HTTP_REFERER);
CMS系统:phpcms v9 get调用热门文章的自定义调用办法(两种)
《CMS系统:PHPcms v9 get调用热门文章的自定义调用办法(两种)》要点:
本文介绍了CMS系统:PHPcms v9 get调用热门文章的自定义调用办法(两种),希望对您有用。如果有疑问,可以联系我们。
{pc:get sql="SELECT * FROM `v9_news` a,`v9_hits` p WHERE a.catid=$catid and a.status=99 and a.inputtime > UNIX_TIMESTAMP()-7*3600*24 and CONCAT( 'c-1-',a.id ) = p.hitsid ORDER BY p.weekviews DESC" num="15"}
{loop $data $r}
{date('d',$r[inputtime])}日 {str_cut($r[title],38)}
{/loop}
{/pc}
//其中 c-1-中的1代表MODELID 请更换成你自己的模型ID,经测试此方法超占MysqL资源
第二种:
SELECT a.title,a.url FROM v9_news a,v9_hits b WHERE a.id = substr(b.hitsid,5) AND status = 99 ORDER BY b.views DESC
//注意:substr(b.hitsid,5)的意思是截取v9_hits表里hitsid字段值第5个字符起至结束,请按实际情况修改,如果你的站点ID是两位数,那么这里你要从第6个字符开始,完美一点再加个 a.catid=b.catid
今天的关于CMS系统:PHPCMS v9手机伪静态方法和maccms伪静态规则的分享已经结束,谢谢您的关注,如果想了解更多关于CMS系统、CMS系统:iOS开发教程、CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁、CMS系统:phpcms v9 get调用热门文章的自定义调用办法(两种)的相关知识,请在本站进行查询。
本文标签: