PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > CMS教程 > discuz教程 > 正文

    Discuz插件制作教程【入门+精通+实战】

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:一、开发插件所需资料与工具 1、DiscuzX3 插件机制插件机制Discuz! 拥有一套完整的插件机制。合理使用插件机制,你可以更好的将自...
                      直接打印$_G['config']['db']即可,如:
    <?php
    require_once './source/class/class_core.php';
    $discuz = & discuz_core::instance();
    $discuz->init();
    print_r($_G['config']['db']);
    ?>
    复制代码
    4.4、数据库操作
                      DB::table()           //增加了pre的数据库表名
                      DB::delete()           //删除表中数据
                      DB::insert()           //向表中插入数据
                      DB::update()           //更新表中数据
                      DB::fetch()           //配合DB::query来实现数据资源数据的获取
                      DB::query()           //执行一条数据库语句
                      DB::fetch_first()  //获取结果集的第一条记录
     
                      更多操作请查看文档: http://dev.discuz.org/wiki/index ... E%E5%BA%93%E7%B1%BB
     
             5、熟悉 ./source/function/function_admincp.php 管理后台文件里的函数,知道具体函数是实现什么功能效果
             6、了解和掌握基础通用的类、函数   http://dev.discuz.org/wiki/#.E5. ... 1.E5.87.BD.E6.95.B0
     
           二、安全性处理
              1、文件的安全性
                 所有与插件有关的程序,包括全部的前后台程序,因全部使用外壳调用,请务必在第一行加入
                  if(!defined('IN_DISCUZ')) {
                            exit('Access Denied');
                   }
                 以免其被 URL 直接请求调用,产生安全问题。
     
              2、对数值处理
                 2.1、 intval();    //处理非负整数 ,如:$uid=intval($uid);
                   注意,使用intval后,一定要想一想,自己这个变量是不是应该非负的?如果是的话,得加个判断语句,或者用abs,max等函数处理下
                 2.2、 trim();      //去除左右空格, 如:$username=trim($username);
                 2.3、 对于文字内容,记得使用htmlspecialchars(dhtmlspecialchars)
                 2.4、 写入数据库时的注意事项
                       要进数据库的变量一定得addslashes(DZ内为daddslashes,如用DZ无须再次过滤,DZ已将所有$_POST和$_GET过滤),当然,如果你进的是数字(比如uid,并且已经intval过),或者是其他一些肯定不会出错的,那么你可以不做这一步。
                 2.5、 在写sql语句时,变量一定得记得用’框起来。如果变量是字符串,不这么做会出错。如果是数字不这么做不会提示出错,但是有可能有注入的危险。
                 2.6、 数组在运用前记得写$xxx = array();  原因很简单,防止用户提交恶意的值。
     
              3、语句查询优化
                  在写SQL语句是尽量符合SQL规则,语句查询要相应的优化,有先有后;数据表要相应的创建索引,加快查询速度,这里不多说。
     
           三、实例讲解之插件的前兆
               1、最先清楚需要开发什么功能的插件,插件机制是否能够开发,最后能否达到预期效果,否则一切都免谈了
               2、需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等
               3、需要哪些函数,discuz内部是否有这功能的函数,尽量用内部的函数来达到预期效果
               4、最好不要改动discuz原有的布局,宁愿Coty一段代码出来也不要在原有的函数上添加功能,防止以后的升级问题
               5、尽最大能力去开发智能的插件,多用变量代替常量,增强程序的移植性,可维护性
     
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-106-782-1.html
    相关热词搜索: Discuz插件