有个表单内容需要填写js代码,以供用户复制,要写入数据库,需要对其进行转义,但是用thinkphp的D方法中的create创建表单,它并没有自动进行js过滤,开启了’VAR_FILTERS’=>’htmlspecialchars’,//对get,post数据进行htmlspecialchars过滤,这样也不行。
后来在手册中发现这样一句话:
create方法如果没有传值,默认取$_POST数据,如果用户提交的变量内容,含有可执行的html代码,请进行手工过滤。
所以,你的表单中有需要填写<script>xxxxxx</script>这样的js代码时,需要手动进行htmlspecialchars过滤。
在对应的model模型中自动填充字段,使用回调方法,如代码中高亮显示的部分,通过回调方法对数据进行处理。