第一:接收数据请使用 param() 方法,此方法可接收 GET POST COOKIE 依次优先顺序。
1.接收数字,比如接收数字 $tid = param('tid', 0); 0为强制转换为数字,比如接收的是字符,会强制转换为 0 ;
2.接收字符串有两种方式,比如标题
<1> $title = param('title'); 会过滤接收字符串,html的标签会被强制转换,这样做比较安全。
<2> $title = param('title', '', FALSE); 原样接收字符串,不会改变字符串任何数据,这样做非常不安全,但是入库前必须再处理一次数据。
处理类型 2 的数据:
$title = filter_all_html($title); 这个方法过滤所有html标签;
$title = xn_html_safe($title); 这个方法过滤所有不安全的html标签和字符,并强制转换造成危险字符,有效防止注入、CSRF和XSS;
两种类型同时使用时,先过滤html标签,再过滤危险字符。如果使用 接收类型 <1> 无需使用这2个方法。一般正文需要支持html标签的数据,必须使用 xn_html_safe() 进行过滤。
非特殊情况无需使用3和4
3.接收一维数组 $arr = param('post', array());
4.接收多维数组
// $filter 为需要过滤的字符串,强制转换过滤危险标签和字符
$filter = array('name','message','brief');
well_param('post', array(), $filter);
// 数字类型多维数组,忽略$filter
well_param('post', array());
第二:插件配置数据
设置入库 setting_set('key', 'value');
取出数据 setting_get('key');
卸载删除 setting_delete('key');
1.设置入库
$well_title = param('title');
$well_money = param('money', 0);
$well_plugin_conf = array(
'title' => $well_title,
'money' => $well_money
);
// 插件前缀well_插件信息英文或缩写字母,目录和插件名为 well_plugin_test
setting_set('well_plugin_test', $well_plugin_conf);
2.取出数据
$well_plugin_conf = setting_get('well_plugin_test');
第一种方式直接声明,但是这种方式在没有数据时会报错
$well_title = $well_plugin_conf['title'];
$well_money = $well_plugin_conf['money'];
第二种方式即使没有数据也不会报错
$well_title = array_value($well_plugin_conf, 'title');
$well_money = array_value($well_plugin_conf, 'money');
// 下面是打印查看,实际使用时不需要,开发时可查看数据
echo '<pre>';
print_r($well_plugin_conf);
echo '<hr>';
print_r($well_title);
echo '<hr>';
print_r($well_money);
echo '<hr>';
echo '</pre>';
3.卸载删除数据
setting_delete('well_plugin_test');
第三:判断数据时统一代码书写习惯,如:
if('GET' == $method) {
echo 'GET 获取';
}
第四:插件开发所有文件务必统一分类存放,请勿全部存放在插件根目录下:
/plugin/well_plugin_test/admin/后台相关
/plugin/well_plugin_test/admin/route/ 后台业务文件
/plugin/well_plugin_test/admin/view/htm/ 后台模板
/plugin/well_plugin_test/admin/view/js/
/plugin/well_plugin_test/admin/view/css/
/plugin/well_plugin_test/admin/view/img/
/plugin/well_plugin_test/hook/ 所有php和模板钩子
/plugin/well_plugin_test/overwrite/ 为覆盖主程序文件,不推荐使用,覆盖时对应主程序目录文件
如覆盖 主程序 /route/index.php
/plugin/well_plugin_test/overwrite/route/index.php
/plugin/well_plugin_test/model/ 定义的方法文件目录
/plugin/well_plugin_test/route/ 前台业务文件
/plugin/well_plugin_test/lib/ 定义的class文件目录
/plugin/well_plugin_test/view/ 等同 admin/view/
其他请参照
http://www.wellcms.cn/read-71.html