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);(责任编辑:大宝库)
php网页 安装插件,插件安装流程相关推荐
- 【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
文章目录 一.shared_preferences 本地存储插件简介 二.安装 shared_preferences 插件 三.使用 shared_preferences 流程 四.完整代码示例 五. ...
- 导出已安装的插件_明明flash插件已安装,但是网页依然不能正常显示的解决办法...
相信有很多朋友都遇到过一个问题,那就是自己明明已经安装了Adobe flash player,但是进入网页后有些网页并不能正常显示,例如我这里使用flash player测试页面进行测试,flash ...
- ubuntu 安装java插件_Ubuntu下安装JAVA插件欣赏精美网页
感谢cc2.cc的投递. ------------------------------------------------ 记得1998年那时刚接触网络,就被网上那些精美的Java所展现出来的令人炫目 ...
- 宇视摄像机网页界面登录“提示加载插件失败,点击下载安装最新插件”
提示加载插件失败,点击下载安装最新插件: 解决方法: 更换浏览器交叉测试:使用IE7以上浏览器登录:清除浏览器缓存,在电脑控制面板卸载原有控件,下载最新控件并安装. 控件卸载: 控制面板--程序--卸 ...
- 走进前端,vscode插件的安装及使用
Part One 走进前端 一.概述 web前端开发源网站设计,使用各种技术和框架创建页面系统呈现给用户的过程,通过编写代码的方式将图片.文字等素材在页面进行合理布局,达到与效果图相同的效果.前端开发 ...
- Photoshop的基本使用和Cutterman插件的安装
Photoshop2020的基本使用和Cutterman插件的安装 Photoshop2020在网页编程中常使用的基本快捷键 快捷键 快捷键含义 ctrl + R 显示/隐藏标尺 (将标尺单位改为像素 ...
- eclipse java插件下载,eclipse安装server插件_eclipse安装javaee - push博客
一.eclipse安装server插件 如今最新版本的eclipse 也没有集成化server软件, 必须人们自身安裝, 在网上有许多版本教程, 沒有讲到点上, 我在这纪录一下个版本安裝server的 ...
- 安装jenkins插件的两种方法
安装jenkins插件有两种方法,一种是在线安装,一种是离线安装.两种方式介绍如下: 1.如果服务器可以上网,那边选择在线安装最好不过了,安装流程为: 系统管理----插件管理---选择需要的插件直接 ...
- Android开发之原型图浏览器打开可点击跳转之Google插件之Axure(实际上大部分浏览器都可以安装这个插件)
一:我们来看下Axure制作的原型图可跳转的效果图: 但是呢一般我们从产品经理给的原型图文件是.rp后缀一般打不开,只有安装Axure才可以 打开后我们如果想看跳转逻辑可以到处HTML网页版本进行查看 ...
最新文章
- hdu 6096---String(AC自动机)
- MySQL中SELECT语句简单使用
- 普渡大学电子计算机专业,普渡大学电子工程(EE)专业介绍
- 9路棋盘java代码_Java ServiceContext类代码示例
- 贷款利润最大化——利用随机森林和逻辑回归
- C++/C学习笔记(九)
- 找不到图片素材,看这里
- 专用集装箱行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- java long 二进制输出格式_算法:java打印int类型的二进制格式
- Java CSV操作(导出和导入)
- PyYAML和configparser模块讲解
- 软件概要设计文档编写
- 领扣(LeetCode)最长和谐子序列 个人题解
- 巴厘岛最全的美食攻略
- 量子计算机进行量子传输,量子技术新突破:按一下按钮就能实现量子传输!
- IOM计算机组成原理,计算机组成原理-实验1静态随机存储器实验
- 洛谷P5960 【模板】差分约束算法
- 第四方支付崛起,聚合支付为什么这么火?
- iOS 显示SVG文件的方法
- USB会议摄像机的重要的网络特性
热门文章
- SAP Spartacus scss里的--cx-color-primary
- 如何使用Angular的@Input()装饰器
- Spring JDBC 框架,我的学习笔记
- Spring AOP的一个具体例子
- 有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
- Hybris commerce里用web service为什么查询不到产品的描述信息
- SAP CRM和Hybris里的Product Variant
- Angular groupBy test
- SAP UI5 Require Busy dialog
- SAP CRM ABAP Product search authorization check - 产品搜索的权限检查机制