thinkphp表单js过滤
有个表单内容需要填写js代码,以供用户复制,要写入数据库,需要对其进行转义,但是用thinkphp的D方法中的create创建表单,它并没有自动进行js过滤,开启了’VAR_FILTERS’=>’htmlspecialchars’,//对get,post数据进行htmlspecialchars过滤,这样也不行。
后来在手册中发现这样一句话:
create方法如果没有传值,默认取$_POST数据,如果用户提交的变量内容,含有可执行的html代码,请进行手工过滤。
所以,你的表单中有需要填写<script>xxxxxx</script>这样的js代码时,需要手动进行htmlspecialchars过滤。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php class AdsModel extends CommonModel { // 自动验证设置 protected $_validate = array( ); // 自动填充设置 protected $_auto = array( array("ad_code","getCode",1,"callback"), // 对name字段在新增的时候回调getName方法 ); protected function getCode($ad_code){ return htmlspecialchars($ad_code); } } |
在对应的model模型中自动填充字段,使用回调方法,如代码中高亮显示的部分,通过回调方法对数据进行处理。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: file_get_contents 小结
- 下一篇:没有了