您当前的位置:首页 > CMS常见问题 > phpcms常见问题 >

phpcms ckeditor编辑器自动过滤script iframe frame javascript

0

如果你的网站是基于phpcms建站程序的,那么你在发布内容时,如果在编辑器里以源码方式输入了HTML的<script>、<frame>、<iframe>标签显示一切正常,但当你保存内容后查看前台效果或返回修改该内容时会发现这几个标签被自动过滤了。这是因为phpcms程序在保存内容时设置了过滤这几个标签,目的是防止脚本注入,但对于需要在内容里插入这些标签的网站编辑或SEO优化人员来说太不方便了,如果确实需要,可以修改程序文件,打开/phpcms/libs/functions/global.func.php文件,搜索代码function trim_script定位到trim_script函数,如下代码所示:

function trim_script($str) {
	if(is_array($str)){
		foreach ($str as $key => $val){
			$str[$key] = trim_script($val);
		}
	}else{
		$str = preg_replace ( '/\<([\/]?)script([^\>]*?)\>/si', '<\\1script\\2>', $str );
		$str = preg_replace ( '/\<([\/]?)iframe([^\>]*?)\>/si', '<\\1iframe\\2>', $str );
		$str = preg_replace ( '/\<([\/]?)frame([^\>]*?)\>/si', '<\\1frame\\2>', $str );
		$str = str_replace ( 'javascript:', 'javascript:', $str );
	}
	return $str;
}

根据自身情况,可选择注释掉以上第7至10代码,这样在保存内容的时候就不会过滤掉你注释掉的HTML标签了。

顶部中部底部