您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcmsV9升级至php7.1常见报错修复方法
傲蕾2025-05-18 22:16:29phpcms教程已有3人查阅
导读最近将phpcmsV9升级至php7.1,中间踩过一些坑,这里列出来给大家参考下。1. 迁移至php7.1+mysql5.6+nginx的修改项目
最近将phpcmsV9升级至php7.1,中间踩过一些坑,这里列出来给大家参考下。
1. 迁移至php7.1+mysql5.6+nginx的修改项目
已修改 : /phpcms/libs/classes/checkcode.class.php
已修改 : /phpcms/libs/classes/db_factory.class.php
已增加 : /phpcms/libs/classes/db_mysqli.class.php
已修改 : /phpcms/libs/classes/model.class.php
已修改 : /phpcms/libs/classes/template_cache.class.php
已修改 : /phpcms/libs/classes/update.class.php
已修改 : /phpcms/libs/functions/global.func.php
已修改 : /phpcms/modules/admin/cache_all.php
已修改 : /phpcms/modules/content/fields/editor/output.inc.php
已修改 : /phpcms/modules/content/fields/title/output.inc.php
2. 函数htmlspecialchars()在php7下严格校验编码,导致空白,修改为new_html_special_chars()方法:
已修改 : /phpcms/modules/content/fields/content_form.class.php
已修改 : /phpcms/modules/content/fields/omnipotent/field_edit_form.inc.php
已修改 : /phpcms/modules/content/fields/textarea/field_edit_form.inc.php
已修改 : /phpcms/modules/yp/fields/omnipotent/field_edit_form.inc.php
已修改 : /phpcms/modules/yp/fields/textarea/field_edit_form.inc.php
已修改 : /phpcms/modules/yp/fields/title/output.inc.php
已修改 : /phpcms/modules/yp/fields/yp_form.class.php
所有以上修改/增加的文件,均在下面压缩包中,建议下载后对比查看,不建议直接替换;
phpcmsV9升级php7修改文件 [点击直接下载]
其中global.func.php仅修改不可替换,请自行对比文件改动的地方;
3.修改database.php的type值为mysqli;
注意事项:
A.php7.1对函数参数个数严格校验,对函数形参一定要赋默认值,否则直接Fatal error: Uncaught ArgumentCountError: Too few arguments to function;
B.htmlspecialchars严格编码,以前在php5.2下正常使用的,需要修改为 new_html_special_chars() 具体函数定义见 global.func.php;
C.数据库5.6对老版本5.0的listorder-1问题,将字段设置为有符号即可;
D.伪静态规则升级,与httpd.ini变化不太大,需要逐条测试;
E.MySQL函数mysql_在php7中废弃,代之以mysqli_函数;
伪静态rewrite规则而升级遇到一个坑,就是中文url的问题,我是这么解决的: 重点看第三条,直接匹配tags/后的所有字符,然后让前两条规则优先,解决冲突的问题;经过GET打印测试,匹配完美。
1. 迁移至php7.1+mysql5.6+nginx的修改项目
已修改 : /phpcms/libs/classes/checkcode.class.php
已修改 : /phpcms/libs/classes/db_factory.class.php
已增加 : /phpcms/libs/classes/db_mysqli.class.php
已修改 : /phpcms/libs/classes/model.class.php
已修改 : /phpcms/libs/classes/template_cache.class.php
已修改 : /phpcms/libs/classes/update.class.php
已修改 : /phpcms/libs/functions/global.func.php
已修改 : /phpcms/modules/admin/cache_all.php
已修改 : /phpcms/modules/content/fields/editor/output.inc.php
已修改 : /phpcms/modules/content/fields/title/output.inc.php
2. 函数htmlspecialchars()在php7下严格校验编码,导致空白,修改为new_html_special_chars()方法:
已修改 : /phpcms/modules/content/fields/content_form.class.php
已修改 : /phpcms/modules/content/fields/omnipotent/field_edit_form.inc.php
已修改 : /phpcms/modules/content/fields/textarea/field_edit_form.inc.php
已修改 : /phpcms/modules/yp/fields/omnipotent/field_edit_form.inc.php
已修改 : /phpcms/modules/yp/fields/textarea/field_edit_form.inc.php
已修改 : /phpcms/modules/yp/fields/title/output.inc.php
已修改 : /phpcms/modules/yp/fields/yp_form.class.php
所有以上修改/增加的文件,均在下面压缩包中,建议下载后对比查看,不建议直接替换;
phpcmsV9升级php7修改文件 [点击直接下载]
其中global.func.php仅修改不可替换,请自行对比文件改动的地方;
3.修改database.php的type值为mysqli;
注意事项:
A.php7.1对函数参数个数严格校验,对函数形参一定要赋默认值,否则直接Fatal error: Uncaught ArgumentCountError: Too few arguments to function;
B.htmlspecialchars严格编码,以前在php5.2下正常使用的,需要修改为 new_html_special_chars() 具体函数定义见 global.func.php;
C.数据库5.6对老版本5.0的listorder-1问题,将字段设置为有符号即可;
D.伪静态规则升级,与httpd.ini变化不太大,需要逐条测试;
E.MySQL函数mysql_在php7中废弃,代之以mysqli_函数;
伪静态rewrite规则而升级遇到一个坑,就是中文url的问题,我是这么解决的: 重点看第三条,直接匹配tags/后的所有字符,然后让前两条规则优先,解决冲突的问题;经过GET打印测试,匹配完美。
本文标签:
很赞哦! (0)
下一篇:phpcms安装使用方法介绍
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
PHPCMS搭建wap手机网站的方法
PHPCMS搭建PC端网站比较方便,但是在wap手机端方面却不怎么实用,而且自带的手机建站感觉不是很好,而且模版不好控制,现在对其进行修改,手机建站个人感觉比较方便phpcms模块之间调用常用操作列表
常用操作列表(1)phpcms\phpcms\base.php1.调用数据库模型其中$this->db中所支持的方法请参照phpcms/libs/classes/model.class.php中方法PHPCMSV9点击量排行调用方法
另外我们还需要修改phpcms里模型代码以适用其上面的调用标签,打开 phpcms\modules\content\classes\content_tag.class.php 文件,在里面添加一个函数,PHPCMS V9数据库备份与恢复的方法
1. 登录网站管理后台,记录PHPCMS V9的版本为了防止因版本升级后数据库无法进行恢复,所以管理员应该养成在备份数据时要记录相应的平台版本。同时还要提醒记录下这时候的管理员的帐号和密码。
留言与评论 (共有 0 条评论) |