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

下载所需的插件

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);(责任编辑:大宝库)

php网页 安装插件,插件安装流程相关推荐

  1. 【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )

    文章目录 一.shared_preferences 本地存储插件简介 二.安装 shared_preferences 插件 三.使用 shared_preferences 流程 四.完整代码示例 五. ...

  2. 导出已安装的插件_明明flash插件已安装,但是网页依然不能正常显示的解决办法...

    相信有很多朋友都遇到过一个问题,那就是自己明明已经安装了Adobe flash player,但是进入网页后有些网页并不能正常显示,例如我这里使用flash player测试页面进行测试,flash ...

  3. ubuntu 安装java插件_Ubuntu下安装JAVA插件欣赏精美网页

    感谢cc2.cc的投递. ------------------------------------------------ 记得1998年那时刚接触网络,就被网上那些精美的Java所展现出来的令人炫目 ...

  4. 宇视摄像机网页界面登录“提示加载插件失败,点击下载安装最新插件”

    提示加载插件失败,点击下载安装最新插件: 解决方法: 更换浏览器交叉测试:使用IE7以上浏览器登录:清除浏览器缓存,在电脑控制面板卸载原有控件,下载最新控件并安装. 控件卸载: 控制面板--程序--卸 ...

  5. 走进前端,vscode插件的安装及使用

    Part One 走进前端 一.概述 web前端开发源网站设计,使用各种技术和框架创建页面系统呈现给用户的过程,通过编写代码的方式将图片.文字等素材在页面进行合理布局,达到与效果图相同的效果.前端开发 ...

  6. Photoshop的基本使用和Cutterman插件的安装

    Photoshop2020的基本使用和Cutterman插件的安装 Photoshop2020在网页编程中常使用的基本快捷键 快捷键 快捷键含义 ctrl + R 显示/隐藏标尺 (将标尺单位改为像素 ...

  7. eclipse java插件下载,eclipse安装server插件_eclipse安装javaee - push博客

    一.eclipse安装server插件 如今最新版本的eclipse 也没有集成化server软件, 必须人们自身安裝, 在网上有许多版本教程, 沒有讲到点上, 我在这纪录一下个版本安裝server的 ...

  8. 安装jenkins插件的两种方法

    安装jenkins插件有两种方法,一种是在线安装,一种是离线安装.两种方式介绍如下: 1.如果服务器可以上网,那边选择在线安装最好不过了,安装流程为: 系统管理----插件管理---选择需要的插件直接 ...

  9. Android开发之原型图浏览器打开可点击跳转之Google插件之Axure(实际上大部分浏览器都可以安装这个插件)

    一:我们来看下Axure制作的原型图可跳转的效果图: 但是呢一般我们从产品经理给的原型图文件是.rp后缀一般打不开,只有安装Axure才可以 打开后我们如果想看跳转逻辑可以到处HTML网页版本进行查看 ...

最新文章

  1. hdu 6096---String(AC自动机)
  2. MySQL中SELECT语句简单使用
  3. 普渡大学电子计算机专业,普渡大学电子工程(EE)专业介绍
  4. 9路棋盘java代码_Java ServiceContext类代码示例
  5. 贷款利润最大化——利用随机森林和逻辑回归
  6. C++/C学习笔记(九)
  7. 找不到图片素材,看这里
  8. 专用集装箱行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  9. java long 二进制输出格式_算法:java打印int类型的二进制格式
  10. Java CSV操作(导出和导入)
  11. PyYAML和configparser模块讲解
  12. 软件概要设计文档编写
  13. 领扣(LeetCode)最长和谐子序列 个人题解
  14. 巴厘岛最全的美食攻略
  15. 量子计算机进行量子传输,量子技术新突破:按一下按钮就能实现量子传输!
  16. IOM计算机组成原理,计算机组成原理-实验1静态随机存储器实验
  17. 洛谷P5960 【模板】差分约束算法
  18. 第四方支付崛起,聚合支付为什么这么火?
  19. iOS 显示SVG文件的方法
  20. USB会议摄像机的重要的网络特性

热门文章

  1. SAP Spartacus scss里的--cx-color-primary
  2. 如何使用Angular的@Input()装饰器
  3. Spring JDBC 框架,我的学习笔记
  4. Spring AOP的一个具体例子
  5. 有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
  6. Hybris commerce里用web service为什么查询不到产品的描述信息
  7. SAP CRM和Hybris里的Product Variant
  8. Angular groupBy test
  9. SAP UI5 Require Busy dialog
  10. SAP CRM ABAP Product search authorization check - 产品搜索的权限检查机制