服务器之家:专注于服务器技术及软件下载分享
分类导航

DEDECMS|帝国CMS|Discuz|PHPCMS|Wordpress|ZBLOG|ECSHOP|苹果CMS|极致CMS|CMS系统|

服务器之家 - 建站程序 - CMS系统 - pbootcms的if判断失效直接显示标签怎么回事?

pbootcms的if判断失效直接显示标签怎么回事?

2023-05-07 21:01未知服务器之家 CMS系统

使用pbootcms建站在处理详情内容做判断的时候,有时会出现判断失效的奇怪情况,直接显示标签代码。在一些其他地方判断极小概率也会碰到,这是为什么呢? 例如报错: 程序运行异常:syntaxerror,unexpected=,位置:/apps/home/controlle

使用pbootcms建站在处理详情内容做判断的时候,有时会出现判断失效的奇怪情况,直接显示标签代码。在一些其他地方判断极小概率也会碰到,这是为什么呢?

例如报错:

程序运行异常: syntax error, unexpected '=',位置:/apps/home/controller/ParserController.php(3310) : eval()'d code,第1行。

碰到这种情况首先检查是否判断的条件里含有了程序过滤的特殊字符,含有的话会使判断失效。

过滤特殊字符串处理在\apps\home\controller\ParserController.php中:

pbootcms的if判断失效直接显示标签怎么回事?

问题案例

如下图判断的时候前台失效,直接显示了标签代码。检查判断条件中含有Evaluate触发了eval字符过滤导致。

pbootcms的if判断失效直接显示标签怎么回事?

解决办法

既然是含有了不该出现的字符,那就想办法不要拿含有这个字符的内容去判断。这里就可以使用到长度截取标签了,我们可以截取几个字符去作为条件判断。

pbootcms的if判断失效直接显示标签怎么回事?

因此只要在判断条件上增加截取标签,例如:

原来的条件是{content:content},改为{content:content len=2} 即可。

其他的判断条件类似操作,你学会了吗?


延伸 · 阅读

精彩推荐