害,说起来都是泪啊,我前几年搭站就认准了phpcms,就像老一辈开出租就爱选老桑塔纳,皮实耐造能拉活,关键是免费好用不折腾,但是架不住它年头久啊,稍微改点东西调个配置,它就给你闹脾气扔半路上——说白了就是phpcms参数报错找上门,你说烦不烦?
我最早折腾phpcms参数报错修复的时候,那叫一个慌,百度搜了十几页,要么是收几百块上门修的广告,要么是半吊子抄来的教程,我对着教程拧了俩小时,结果呢?报错还在那儿杵着,就像你车坏了,路边师傅拧了半天螺丝,打火还是打不着,收你钱还说“你车本身就老,凑合用吧”,给我气的晚饭都没吃好。
这么多年下来,我碰到的phpcms参数报错没有一百也有八十,总结下来也就常见的三种,对应解法都给你捋明白了,你照着试就行:
这个是新手最容易碰到的,就是你加了自定义功能,传参的时候直接跳出来“参数不正确”,其实这是phpcms自带的安全机制干的好事——就像你老车的防盗器犯病了,你自己拿钥匙开门它都误报警,不让你走。它默认只放白名单里的参数过,你新加的参数没进白名单,直接就给拦了。
解法超简单,就在参数校验之前加一行代码把你的参数加进白名单就行,代码在这里:
``` // 添加自定义参数到允许白名单,把参数名换成你自己的 $allow_param[] = '你的自定义参数名'; ```别像我一开始那样,不知道有白名单,上来就把校验逻辑全删了,虽然不报错了,结果给网站留了漏洞,半个月后被挂了黑链,哭都没地方哭,真的犯不上。
这个大多是php版本升级搞出来的事儿,很多人原来用php5.6好好的,为了安全升了php7+,结果一改配置点保存就报错,这就相当于你老桑塔纳加了新的乙醇汽油,发动机吃不惯突突抖,不是车坏了,是油不对路。
phpcms老版本的param类对超全局变量的写法不兼容php7+,改两行代码就好,找到`phpcms/libs/classes/param.class.php`,把原来的变量取值改成兼容写法,核心修改部分参考:
``` // 原写法不兼容php7+ // foreach(array('_GET', '_POST', '_COOKIE') as $k) { // foreach($$k as $key=>$value) { // 改成下面的兼容写法: foreach(array($_GET, $_POST, $_COOKIE) as $data) { foreach($data as $key=>$value) { ```
我之前帮朋友修过这个phpcms参数报错,他找了三个技术花了小一千都没修好,我过去十分钟改完清缓存就好了,说白了就是踩过坑知道问题出在哪。
这个就是伪静态规则写错了,你开了伪静态,结果规则里的页码参数占位符不对,参数传不到程序里,自然就报错,就像你导航写错了路,到路口GPS直接给你报“路线错误”,太正常了。
解法就是检查伪静态规则里的页码参数,是不是对应phpcms默认的{$page}占位符,很多人新手图省事抄别人的规则,把page改成了paged或者pagenum,不对号入座自然报错,改过来清完缓存立马好,我第一次做站就为这个折腾了一晚上,现在想想真的是不值当。
我修完毛病都爱留个后手,就像你车修完总得开两圈试试,别刚出修理厂又坏半路上,这两件事都是我踩坑踩出来的经验,一定要做:
很多人改完代码刷新一看,哎怎么还报错?立马就慌了,觉得方法不对,其实大多就是缓存没清对。phpcms的缓存分两块,先去后台更新全站缓存,再手动删掉caches目录下的临时缓存文件,两步都做了再刷新,十有八九就好了,我之前就偷懒只清了后台缓存,结果差点把改好的代码回滚,尴尬得不行。
别嫌麻烦,改核心文件之前先把原文件备份一份,改完没问题也整个全站备份,就像你车换零件,旧零件先留着,不对了还能换回去,真改出问题了你不用抓瞎,我之前改phpcms参数报错,手滑删了半段代码,没备份找了仨小时才找回来,从那以后我改任何东西都先备份,这个习惯救了我好多次。
其实很多人碰到phpcms参数报错就慌,觉得“我是不是把网站搞废了?是不是得重新做站?”嗨,多大点事啊,phpcms就是个老伙计,陪咱们这么多年,出点小毛病太正常了,就像人吃五谷杂粮哪有不生病,车开十年哪有不抛锚,找对地方对症下药,分分钟就修好。
我写这篇真不是为了啥,就是我当年找phpcms参数报错修复的方法找的太苦了,网上不是广告就是废话,折腾好几天修不好,所以把我这么多年踩坑整理的干货放出来,就是想让碰到问题的朋友少走点弯路,我都帮你踩过坑了,你照着走就行。
咱们做站的,不就是这么一路踩坑一路走过来的嘛?遇到问题别怕,解决问题就是涨经验,这次修好了phpcms参数报错,下次再碰到你就是老司机了,慢慢来,日子总会越来越好的,对吧?












易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图