phpcms v9 部分站点后台更新栏目缓存后为空白页

问题1:phpcms V9某个站点的栏目中发现有几个栏目消失了,但是没有人删除

问题2:phpcms V9更新这个站点下的栏目缓存后出现空白现象!

问题分析:

  1. 到数据库v9_category表中查找看了下这几个栏目还存在啊!!于是没有多看
  2. 查找了相关模块的代码/modules/admin/category.php中repair(“修复栏目数据”)排错后发现是的方法里边的代码,产生的提示,但没找到具体提示在哪里!
  3. 不是所有站点下栏目缓存更新都出空白,所以可能不是代码问题
  4. 回头有看了看数据库这几个栏目的字段,发现了问题,其中某个顶级栏目的parentid居然不是0而是他的一个子栏目id,这肯定是不对的,改了之后更新全站缓存,在更新栏目缓存就恢复了

注意:先更新全站缓存,在去更新栏目缓存

 

phpcms V9在阿里云运行中被提示漏洞的问题

网站运行正常,但是在发布文章保存的时候只出现了个0

经过从当前控制器中开始不断排错,直到走到phpcms/libs/classes/attachement.class.php文件的附件下载方法中看到第一行就有如下语句

很疑惑这种代码我从来没有加过!!!删除之后问题不解决了,但这是哪里来的代码呢?

就是阿里云的漏洞修复,查看了下阿里云的漏洞修复记录,果真!!

但是您这语句逻辑啥时候都是exit(0)好么!!我们的程序还咋跑啊!

于是又做了如下修改:

将阿里云给出的代码加以修改如下

只有在使用此方法时给定这个$ext参数时候进行判断!

 

phpcmsV9 修改编辑器(拿KindEditor为例)后的图片上传问题

换了新编辑器上传图片,图片是上传成功了,但是查看图片库里没有,因为这是走的外部上传方法

第一:修改如下在外部上传脚本中/statics/js/kindeditor/php/upload_json.php  添加如下代码

上传成功后的代码后加入如下代码

第二:需要修改attachment.class.php

复制add方法并改名为add_external_data,此处主要是缺少了siteid,因为外部加载此类获取不到siteid的值,只能通过cookie获取

 

 

phpcmsv9将上传的图片按照站点区分后,之前没有区分过的图片如何移动到区分后的目录呢?

项目需求不明确,回头来改的!!!!!!

遇到此问题就是因为前期刚做的时候没有将图片按照站点来分,导致很多图片还是v9默认的路径,那么这些路径如何移动到站点对应的目录下呢?

代码如下:

文件是/phpcms/modules/attachment/attachments.php,在此类中添加一个方法

phpcms v9角色权限提示“您没有权限操作该项”解决方法

如果你是用“超级管理员”的角色来管理你的网站,那么可以略过本文。如果你有给其它用户分配管理帐户来管理网站,那么有可能遇到这样的问题,那么本文兴许能帮到你。

写这篇的原由:本屌丝给另一管理者分配了一个角色,角色名称“管理员”以便管理网站,使用中发现此角色对“评论管理”没有删除权限。(图1)


图1

 

好嘛!没删除权限我就给你权限不就得鸟!!进入后台点设置->角色管理->管理员中的权限设置(如图2)。找呀找呀,没找到“附件管理”删除功能的权限分配。愁惨啊!

图2

 

以上问题存在的原因有2点:

1、官方对部份功能的权限没有分配如此细致(必境每个用户所要的权限都会不一样)

2、自个儿在控制器中加了新的方法

废话一堆,现在是解决方法,见证奇迹出现的时刻。

修改数据库表名为:v9_admin_role_priv 添加你定义的action就行了(图3)

图3

语句:insert into v9_admin_role_priv(roleid,m,c,a,siteid) values(4,’content’,’content’,’remove’,1)

说明:

roleid是角色id(可以在v9_admin_role数据表里查看角色对应的id,后台“设置->角色管理”也能看到。

m是模块名

c是控制器名

a是你自定义的action名

data为空即可

siteid站点id,一般是1.

怎么得到所要的m、c、a的数值呢?

以评论管理为例:

打开浏览器的开发人员工具(F12)

在:内容-评论管理,点下删除,就可以看到以下的源代码(图4)

图4

自儿个新增的自定义的动作的m、c、a值怎么来呢?

以留言板为例:

我在表单向表模型formguide 文夹中的模块formguide_info.php文件中新加动作gmsn,其m、c、a值为

m=formguide  c=formguide_info  a=gmsn

phpcms <wbr>v9角色权限提示“您没有权限操作该项”解决方法

 !

phpcmsv9字符串截取函数str_cut截取英文不准确问题修改

文件目录/phpcms/libs/functions/global.func.php文件下

最好把原始str_cut方法注释掉,在其后加上这个修改过的方法

 

PHPCMS V9 数据库操作方法

PHPCMS V9 数据库操作方法

数据库的操作基本也就增删改查四类,本文主要列出PHPCMS V9的数据库操作类常用的增删改查的使用方法,为我们对PHPCMS二次开发时对数据库操作时提供帮助。

一、查找数据

二、增加数据

三、修改数据

四、删除数据

 

 

PHPCMS模块的安装和卸载

假设我安装的模块名为 “mytest”

步骤如下:

1.新建文件夹 /phpcms/modules/mytest,在 mytest 下新建3个文件夹和2个文件,如上图红色线框.

install:安装文件存放文件夹

uninstall:卸载文件存放文件夹

templates:后台模板文件存放文件夹

index.php:前台控制器

mytest_admin.php:后台控制器

index.php 文件内容:

mytest_admin.php 文件内容:

templates/index.tpl.php

templates/setting.tpl.php

2.在 mytest/install/ 下,新建 languages/zh-cn/mytest.lang.php、templates/1.html、config.inc.php、extension.inc.php、model.php、module.sql、mytest.sql 文件.

/phpcms/modules/mytest/install/languages/zh-cn/mytest.lang.php:语言文件,此文件将被复制到 /phpcms/languages/zh-cn/mytest.lang.php.

/phpcms/modules/mytest/install/templates/1.html:前台模板,此文件将被复制到 /phpcms/templates/default/mytest/1.html

前台页面访问测试:www.phpfensi.com/index.php?m=mytest&c=index&a=test

/phpcms/modules/mytest/install/config.inc.php:模块相关介绍信息

/phpcms/modules/mytest/install/extension.inc.php:模块后台管理的菜单

/phpcms/modules/mytest/install/model.php:模型文件(该文件返回一个数组,所以可以有多个模型文件)

/phpcms/model/mytest_model.class.php

/phpcms/modules/mytest/install/module.sql:在module表中插入一条记录(mytest模块相关的信息)

/phpcms/modules/mytest/install/mytest.sql:mytest模块要用到的表结构

3.在 mytest/uninstall/ 下,新建 extension.inc.php、model.php、mytest.sql.

extension.inc.php 文件内容:

model.php 文件内容:

mytest.sql 文件内容:

DROP TABLE IF EXISTS phpcms_mytest;

访问效果:

extention.inc.php  千万不要写成 extension.inc.php.

转自:http://www.phpfensi.com/cms/20141031/7802.html

phpcmsv9网站如何修改域名?

转自:http://www.51php.com/phpcms/13434.html

最近无忧主机小编遇到一个问题,有一个客户使用phpcmsv9程序建站,他给网站更改了域名并重新生成更新网站后,发下首页的域名虽然更换过来了,但是内页的还是老域名,导致访问报错。这让无忧主机小编想到了wordpress,其更换域名同样也会出现这样的情况。原因是域名记录在了数据库中。小编进到客户的数据库查看,果然不出小编所料,phpcmsV9和wordpress如出一辙。今天无忧主机小编特地把修改phpcmsV9域名的完整方法共享一下:
第一种方法:
1、修改/caches/configs/system.php里面所有和域名有关的,把以前的老域名修改为新域名。
2、进入后台设置–>站点管理,对相应的站点的域名修改为新域名。
3、点击后台右上角的”更新缓存”按钮更新系统缓存。
4、进入内容–>附件管理–>附件地址替换。把附件地址批量的替换为新的地址。
5、内容–>批量更新URL 。把所有的文章的地址都更新一下。
6、内容–>管理栏目–>更新栏目缓存。将栏目的链接地址改为新地址。
7、如果你的网站是静态页面,则需要把全站都生成一次。如果是动态页面,就不需要。
8、打开网站,所有链接都更改为新地址了。
第一种方法是通过在网站后台以及文件中,所有涉及到域名的链接都改过来。虽然有效,但是因为需要设置的项目比较多,稍有不慎容易遗漏,并且比较繁琐。下面介绍第二种方法。

第二种方法:
直接修改数据库中的信息,在phpmysql上进行管理。
如果你选择采用这种方法,那么首先你需要使用php虚拟主机自带的phpmyadmin工具对网站mysql数据库进行备份,如果你对phpmyadmin备份mysql数据库操作不熟练,你可以参考操教程“无忧主机教你如何使用phpmyadmin导出mysql数据库”来操作,或者直接用无忧主机香港php虚拟主机的全站备份功能来进行全站备份。

好了,数据库备份出来后,请你使用文本编辑器,打开.sql备份文件。小编喜欢用editplus这款文本编辑器工具,下面就用以这个工具来讲解吧。提醒:千万不要使用记事本打开数据库文件,非常容易导致文件编码格式不对,造成数据库乱码,切记。
使用EditPlus,打开数据库文件,点击搜索,选择“替换”。如下图所示。

 

2.在弹出的对话框中,“查找”处填写“老域名”,“替换”处填写“新域名”,点击“全部替换”。

chazhao phpcmsV9网站如何修改域名?phpcmsV9完整修改域名攻略

替换完成后,保存文件。之后使用phpmyadmin工具导入您的网站数据库中。如何使用phpmyadmin导入mysql数据库,你可以参考教程无忧主机原创:phpmyadmin导入数据库的经验总结