入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

thinkphp表单js过滤

创建时间:2014-01-02 投稿人: 浏览次数:1082

有个表单内容需要填写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。