php网页 安装插件,插件安装流程

下述的步骤只是按照通用流程进行说明,如果与插件安装说明中的描述不符,请以插件提供者的描述为准。

下载所需的插件

PHPWind百款插件,集大家所爱,请下载适合您当前论坛情况的插件,并仔细阅读插件安装说明。

按插件安装说明修改程序、模板、上传插件

插件上传非常简单,将插件目录上传到论坛根目录下的hack文件夹下即可。

安装插件

上传完毕后,进入论坛后台->风格插件->插件中心,在"未安装插件"栏目下找到该插件,选择安装。

插件管理

进入论坛后台->风格插件->插件中心,在"已安装插件"栏目下找到该插件,开启插件、设置插件参数,开始使用该插件。

插件目录结构,以及文件名约定规则

举例插件名称为打工插件,唯一ID为work,那么插件的文件夹名称应该跟唯一ID保持一致,其所有文件应该存放在 hack/work目录下,以下内容将以此插件为例说明。

1)插件根目录 hack/work目录

存放插件主要文件,包括在根目录下的文件内容如下:

index.php 插件前台主文件,如果不存在此文件,插件则不显示前台界面。

admin.php 插件后台主文件,如果不存在此文件,插件则无后台管理功能。

sql.txt 插件安装所需要执行的SQL语句,禁止Drop PHPWind自身数据以及删除已有数据等危险操作。如果不需要执行SQL语句变动数据库,可以不存在此文件。

readme.txt 插件使用说明,来提供给用户相关说明文档。

倘若无前台显示/后台设置等,可以没有相应的文件,如果有相应功能,则文件命名必须按照指定规则。

2)图片目录 hack/work/image

此目录存放插件文件中所使用到的图片文件,强烈要求在文件中使用$hkimg变量来指定此目录,这样指定目录将会让文件有极大的灵活性。

3)插件包含文件 hack/work/require

倘若插件比较大,可以把一些常用的函数写成文件放入到require文件夹。

4)插件模板文件夹 hack/work/template

不同于5.0之前的版本,所有模板均放置到template下,前台放置于template/wind 后台放置于template/admin,而现有的插件体系规定所有的插件模板均放置在这一个目录下,不再需要分别放到两个文件夹中。

5)缓存文件

出于文件777属性考虑,以及缓存文件的统一部署,建议插件开发者将缓存文件存储为data/bbscache 目录下(此目录已经可写,否则无法使用), 同时,出于进一步的为插件使用者着想,建议缓存文件使用程序生成,来避免第一次使用插件时,因为没有缓存文件或者缓存文件不可写而导致的错误--我们必须 考虑到,部分用户不熟悉电脑操作,并不了解如何设置文件777属性,所以建议并不附带默认的缓存文件,而默认的缓存文件,在插件使用者第一次使用的时候, 自动生成到data/bbscache目录下,这样将避免插件安装中频繁出现的777问题。[备注提示:一般附带缓存的文件,可内置某些默认值,然后插件 完成安装之后,使用者应该进行一次设置提交来保存它所需要的设置,在这个时候设置再生成缓存文件到data/bbscache目录下一个缓存文件,能够有 效的避免需要设置777的问题]

PHPWind插件开发代码安全基础及简单检测

数据过滤

$_GET、$_POST的变量通过InitGP() or GetGP() 来获取。确认为数值为变量要(int) or (float)强制转换,如:$tid = (int)GetGP('tid'); 。字符串变量要经过Char_cv()过滤,如:$subject = Char_cv($GetGP('subject'));。在PW7中,InitGP() 默认开启Char_cv()过滤,因此不能版本间的兼容问题得处理好,避免有效内容出错。

$_SERVER变量,在PHPWind7中通过全局变量$pwServer或GetServer() 来读取,而在其他版本中,对单独用到的,必须经过addslashes() or Char_cv().

SQL注入

SQL语句中的变量,在PHPWind7中,保证最后经过过滤函数pwEscape() 、 pwImplode() 、pwSqlSingle() 、 pwSqlMulti() 。如:$tbid = $db->get_value('SELECT ptable FROM pw_threads WHERE tid='.pwEscape($tid,false));

而在其他版本,SQL语句中的变量两边必需加个单引号,同时,变量必需是经过了转义的。特别注意从数据库中读取出来的值再次写入数据库时,得进行转义,避免二次注入。

跨站脚本

输出到模板HTML的字符串变量,保证都是经过Char_cv().

杜绝直接在HTML模板中写类似$_GET、$_POST、$_SERVER等变量

文件包含

Include() or require() 文件路径包含变量时,必需经过Pcv()的过滤,如include_once Pcv(D_P.'data/bbscache/'.$filename);(责任编辑:大宝库)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值