[精选]六、PHP如何防止注入及开发安全19925.pptx

上传人:muj****520 文档编号:87112769 上传时间:2023-04-16 格式:PPTX 页数:51 大小:501.04KB
返回 下载 相关 举报
[精选]六、PHP如何防止注入及开发安全19925.pptx_第1页
第1页 / 共51页
[精选]六、PHP如何防止注入及开发安全19925.pptx_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《[精选]六、PHP如何防止注入及开发安全19925.pptx》由会员分享,可在线阅读,更多相关《[精选]六、PHP如何防止注入及开发安全19925.pptx(51页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、学习重点学习重点1、PHP注入的基本原理注入的基本原理2、防止注入的几种办法、防止注入的几种办法3、PHP其他地方安全设置其他地方安全设置PHP如何防止注入及开发安全如何防止注入及开发安全PHP如何防止注入及开发安全如何防止注入及开发安全1、PHP注入的基本原理注入的基本原理 程程序序员员的的水水平平及及经经验验也也参参差差不不齐齐,相相当当大大一一部部分分程程序序员员在在编编写写代代码码的的时时候候,没没有有对对用用户户输输入入数数据据的的合合法法性性进进行行判判断断,使使应应用用程程序序存存在在安安全全隐隐患患。用用户户可可以以提提交交一一段段数数据据库库查查询询代代码码,根根据据程程序序

2、返返回回的的结结果果,获获得得某某些些他他想想得得知知的的数数据据,这这就就是是所所谓谓的的SQL Injection,即即SQL注注入入。受受影影响响的的系系统统:对对输输入入的的参参数数不不进进行行检检查查和和过过滤滤的的系系统统 SQL注入过程注入过程 正常来讲,我们通过地址接收一些必要的参数如:正常来讲,我们通过地址接收一些必要的参数如:PHP100.php?id=2 页面中我们会使用页面中我们会使用 2 写入到写入到SQL语句中语句中 正常情况:正常情况:Select*From Table where id=2如果我们对如果我们对SQL语句熟悉,就知道语句熟悉,就知道2 我们可以替换

3、成我们需要的我们可以替换成我们需要的SQL语句语句如:如:and exists(select id from admin)PHP如何防止注入及开发安全如何防止注入及开发安全2、防止注入的几种办法、防止注入的几种办法其实原来就是我们需要过滤一些我们常见的关键字和符合如:其实原来就是我们需要过滤一些我们常见的关键字和符合如:Select,insert,update,delete,and,*,等等,等等 function inject_check($sql_str)return eregi(select|insert|update|delete|/*|*|./|./|union|into|load_

4、file|outfile,$sql_str);/进行过滤进行过滤例子例子或者是通过系统函数间的过滤特殊符号或者是通过系统函数间的过滤特殊符号Addslashes(需要被过滤的内容)(需要被过滤的内容)PHP如何防止注入及开发安全如何防止注入及开发安全3、PHP其他地方安全设置其他地方安全设置1、register_globals=Off 设置为关闭状态设置为关闭状态2、SQL语句书写时尽量不要省略小引号和单引号语句书写时尽量不要省略小引号和单引号Select*From Table Where id=2 (不规范不规范)Select*From Table Where id=2 (规范规范)3、正确

5、的使用、正确的使用$_POST$_GET$_SESSION 等接受参数,并加以过滤等接受参数,并加以过滤4、提高数据库命名技巧,对于一些重要的字段可根据程序特点命名、提高数据库命名技巧,对于一些重要的字段可根据程序特点命名5、对于常用方法加以封装,避免直接暴露、对于常用方法加以封装,避免直接暴露SQL语句语句学习重点学习重点1、mod_rewrite 简介简介和和配置配置2、mod_rewrite 规则规则的使用的使用3、mod_rewrite 规则规则修正修正符符Apache Rewrite 拟静态配置拟静态配置Apache Rewrite 拟静态配置拟静态配置1、mod_rewrite 简

6、介简介和和配置配置Rewirte主要的功能就是实现主要的功能就是实现URL的跳转和隐藏真实地址,基于的跳转和隐藏真实地址,基于Perl语言的正则语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等如一个普通访问地址为如一个普通访问地址为 */php100.php?id=2可以转成:可以转成:*/PHP100_2.html或转成:或转成:*/PHP100_2/Apache配置:配置:支持支持httpd.conf 配置和目录配置和目录.htaccess配置配置启用启用rewrite#LoadModule rewr

7、ite_module modules/mod_rewrite.so去除前面的去除前面的#LoadModule rewrite_module modules/mod_rewrite.so启用启用.htaccessAllowOverride None 修改为:修改为:AllowOverride AllApache Rewrite 拟静态配置拟静态配置2、mod_rewrite 规则规则的使用的使用启动启动rewrite引擎引擎判断主机判断主机跳转到跳转到RewriteEngine onRewriteRule/test(0-9*).html$/test.php?id=$1 RewriteRule/n

8、ew(0-9*)/$/new.php?id=$1 R启动启动rewrite引擎引擎跳转到跳转到Apache Rewrite 拟静态配置拟静态配置3、mod_rewrite 规则规则修正修正符符1)R 强制外部重定向强制外部重定向2)F 禁用禁用URL,返回返回403HTTP状态码。状态码。3)G 强制强制URL为为GONE,返回,返回410HTTP状态码。状态码。4)P 强制使用代理转发。强制使用代理转发。5)L 表明当前规则是最后一条规则,停止分析以后规则的重写。表明当前规则是最后一条规则,停止分析以后规则的重写。6)N 重新从第一条规则开始运行重写过程。重新从第一条规则开始运行重写过程。7

9、)C 与下一条规则关联与下一条规则关联如果规则匹配则正常处理,以下修正符无效如果规则匹配则正常处理,以下修正符无效8)T=MIME-type(force MIME type)强制强制MIME类型类型9)NS 只用于不是内部子请求只用于不是内部子请求10)NC 不区分大小写不区分大小写11)QSA 追加请求字符串追加请求字符串12)NE 不在输出转义特殊字符不在输出转义特殊字符%3d$1 等价于等价于=$1学习重点学习重点1、PDO 简介简介 和和 配置配置2、PDO 如何连接如何连接 MYSQL3、PDO 常用方法及其使用常用方法及其使用PHP5中使用中使用PDO连接数据库连接数据库PHP5中

10、使用中使用PDO连接数据库连接数据库1、PDO 简介简介 和和 配置配置PDO(PHP Data Object)是是PHP 5 中加入的东西,是中加入的东西,是PHP 5新加入的一个重大功能,因为在新加入的一个重大功能,因为在PHP 5以前的以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等等等PHP6中也将默认使用中也将默认使用PDO的方式连接,的方式连接,mysql扩展将被作为辅助扩展将被作为辅助

11、PHP.iniextension=php_pdo.dllextension=php_pdo_mysql.dllextension=php_pdo_pgsql.dllextension=php_pdo_sqlite.dllextension=php_pdo_mssql.dllextension=php_pdo_odbc.dllextension=php_pdo_firebird.dll 重启重启web选择需要启用的选择需要启用的PDO去除前面的去除前面的#new PDO(“连接信息连接信息”,root,array(PDO:ATTR_PERSISTENT=true);PHP5中使用中使用PDO连接

12、数据库连接数据库2、PDO 如何连接如何连接new PDO(mysql:host=localhost;dbname=php100,root,“);数据库类型数据库类型连接主机连接主机连接的数据库连接的数据库用户和密码用户和密码默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO:ATTR_PERSISTENT=true)变成这样:变成这样:PHP5中使用中使用PDO连接数据库连接数据库3、PDO 常用方法及其使用常用方法及其使用PDO:query()主要是用于有记录结果返回的操作,特别是主要是用于有记录结

13、果返回的操作,特别是SELECT操作操作PDO:exec()主要是针对没有结果集合返回的操作,如主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作等操作PDO:lastInsertId()返回上次插入操作,主键列类型是自增的最后的自增返回上次插入操作,主键列类型是自增的最后的自增ID PDOStatement:fetch()是用来获取一条记录是用来获取一条记录 PDOStatement:fetchAll()是获取所有记录集到一个中是获取所有记录集到一个中$rs=$db-query(SELECT*FROMPHP100);while($row=$rs-fetch()print_r

14、($row);例例学习重点学习重点1、制作、制作PHP安装程序的原理和步骤安装程序的原理和步骤2、制作安装用到的、制作安装用到的PHP函数函数3、制作安装的注意事项、制作安装的注意事项制作制作PHP安装程序的原理和步骤安装程序的原理和步骤制作制作PHP安装程序的原理和步骤安装程序的原理和步骤1、制作、制作PHP安装程序的原理和步骤安装程序的原理和步骤检查目录或检查目录或文件的权限文件的权限修改或修改或填加配置文件填加配置文件检查配置检查配置文件正确性文件正确性导入数据库导入数据库锁定或删除锁定或删除安装文件安装文件原理:原理:其实其实PHP程序的安装原理无非就是将数据库结构和程序的安装原理无非

15、就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。用安装文件,当安装完成后需要修改安装文件。制作制作PHP安装程序的原理和步骤安装程序的原理和步骤2、制作安装用到的、制作安装用到的PHP函数函数is_writable()检检查查文文件件是是否否可可写写,用用来来判判断断文文件件权权限限,同类函数还有同类函数还有is_readable()检查文件是否可读,返回布尔值检查文件是否可读,返回布尔值is_wri

16、table(“data/config.php”);fopen()文件操作函数,打开一个文件或新建文件操作函数,打开一个文件或新建fwrite()文件操作函数,写入内容到文件文件操作函数,写入内容到文件rename()文件操作函数,给文件改名文件操作函数,给文件改名制作制作PHP安装程序的原理和步骤安装程序的原理和步骤3、制作安装的注意事项、制作安装的注意事项1、对文件权限进行检查和相关文件夹,如缓存,生成文件,配置文件、对文件权限进行检查和相关文件夹,如缓存,生成文件,配置文件2、安装文件尽可能独立,可删除,可改名。、安装文件尽可能独立,可删除,可改名。3、数据库导入时,需检查:、数据库导入时

17、,需检查:a、检查是否有建立数据库的权限、检查是否有建立数据库的权限 b、是否同名数据库的存在、是否同名数据库的存在 c、考虑到数据库导入的大小是否分段处理、考虑到数据库导入的大小是否分段处理4、检查配置环境,各种模块的支持情况,如:、检查配置环境,各种模块的支持情况,如:gd2,pdo,rewirte等等学习重点学习重点1、PHP备份数据库的原理备份数据库的原理2、PHP中中mysql相关函数相关函数3、备份时候的注意事项、备份时候的注意事项PHP备份数据库的原理和方法备份数据库的原理和方法PHP备份数据库的原理和方法备份数据库的原理和方法1、PHP备份数据库的原理备份数据库的原理查找所有表

18、查找所有表查找所有字段查找所有字段查找所有数据查找所有数据生成生成SQL需要列出所有字段名,需要列出所有字段名,字段类型等相关信息字段类型等相关信息读取数据出来注意读取数据出来注意特殊符号的转换特殊符号的转换addslashes()把数据格式化把数据格式化生成对应的生成对应的SQL通过相关函数输出通过相关函数输出SQL相关信息,并格式化后生成文件,保存!相关信息,并格式化后生成文件,保存!PHP备份数据库的原理和方法备份数据库的原理和方法2、PHP中中mysql相关函数相关函数mysql_list_tables()表查询函数,类似表查询函数,类似mysql_query()函数函数mysql_f

19、etch_field()字段信息函数,返回句柄字段信息函数,返回句柄Name 字段的名称字段的名称Table 字段所属数据表的名称字段所属数据表的名称Type 字段的类型字段的类型max_length 字段的最大长度字段的最大长度not_null 字段是否不能为空,是,则这一项的值为字段是否不能为空,是,则这一项的值为1primary_key 字段是否为主键,是,则这一项的值为字段是否为主键,是,则这一项的值为1unique_key 字段是否为字段是否为unique键,是,则这一项的值为键,是,则这一项的值为1multiple_key 字段是否不为字段是否不为unique键,是,则这一项的值为

20、键,是,则这一项的值为1Numeric 字段是否为数字型,是,则这一项的值为字段是否为数字型,是,则这一项的值为1Blob 字段是否为字段是否为blob型,是,则这一项的值为型,是,则这一项的值为1Unsigned 数字型的字段是否为数字型的字段是否为unsigned的,是,则这一项的值为的,是,则这一项的值为1Zerofill 数字型的字段是否为数字型的字段是否为zerofilled的,是,则这一项的值为的,是,则这一项的值为1PHP备份数据库的原理和方法备份数据库的原理和方法CREATE TABLE help_category(help_category_id int(5)unsigned

21、 NOT NULL,name char(64)NOT NULL)3、备份时候的注意事项、备份时候的注意事项 例子:例子:1、注意数据库的大小,过大或者过多的表分段处理、注意数据库的大小,过大或者过多的表分段处理2、生成的、生成的SQL文件名或者存放不易被猜到文件名或者存放不易被猜到3、备份生成文件可以表或者自动为单位保存、备份生成文件可以表或者自动为单位保存4、可以使用、可以使用ZIP组件压缩生成的文件以便保持组件压缩生成的文件以便保持学习重点学习重点1、企业网站都有哪些基本功能、企业网站都有哪些基本功能2、如何写企业网站评估报告、如何写企业网站评估报告3、神奇的、神奇的BIWEB积木式建站系

22、统积木式建站系统快速设计一个企业网站之快速设计一个企业网站之BIWEB快速设计一个企业网站之快速设计一个企业网站之BIWEB企企业业网网站站单页发布程序单页发布程序新闻发布新闻发布针对一些企业简介、联系方式、荣誉等针对一些企业简介、联系方式、荣誉等无需分页,只需单页发布即可无需分页,只需单页发布即可支持自定义分类,新闻发布需要支持图片上传、后台排版、关键等内容支持自定义分类,新闻发布需要支持图片上传、后台排版、关键等内容产品展示产品展示支持自定义分类,多图上传,介绍,单价等相关字段支持自定义分类,多图上传,介绍,单价等相关字段订单功能订单功能对于产品展示或商品出售等做订单后台统计功能对于产品展

23、示或商品出售等做订单后台统计功能留言反馈留言反馈一个企业网站必须的功能一个企业网站必须的功能其他:搜索,后台管理,会员管理,采集,生成静态,其他:搜索,后台管理,会员管理,采集,生成静态,SEO优化等优化等1、企业网站都有哪些基本功能、企业网站都有哪些基本功能快速设计一个企业网站之快速设计一个企业网站之BIWEB2、如何写企业网站评估报告、如何写企业网站评估报告一个专业的评估报告一个专业的评估报告对你能否接下单子很重要对你能否接下单子很重要描述模块描述模块根据需求根据需求根据地区和个人团队情况填写根据地区和个人团队情况填写快速设计一个企业网站之快速设计一个企业网站之BIWEB3、神奇的、神奇的

24、BIWEB积木式建站系统积木式建站系统BIWEB 网务通商务智能网站系统,设计初衷就是应用于高负载大流量的大型网务通商务智能网站系统,设计初衷就是应用于高负载大流量的大型web项目,其结构灵活多变,项目,其结构灵活多变,可以非常方便的做到分压、分流和负载均衡,是可以非常方便的做到分压、分流和负载均衡,是web项目首选的建站系统。通过项目首选的建站系统。通过BIWEB,可以方便的搭,可以方便的搭建自己想要的各种建自己想要的各种web应用,并可在投入最小的硬件成本下负载最大的流量,做到性价比最高。应用,并可在投入最小的硬件成本下负载最大的流量,做到性价比最高。特特点点:1、非非传传统统的的企企业业

25、网网站站源源码码,他他是是提提供供建建站站底底层层模模块块 2、完完善善的的底底层层框框架架,可可以以为为开开发发节节省省前前期期很很多多准准备备工工作作 3、添添 加加 栏栏 目目 只只 需需 要要 替替 换换 修修 改改 即即 可可 完完 成成 4、支支 持持 多多 种种 缓缓 存存 机机 制制,提提 高高 网网 站站 系系 统统 的的 速速 度度 5、提提 供供 了了 各各 类类 的的 户户 外外 接接 口口,GGsitemap 等等让让我我们们来来体体验验演演示示一一下下吧吧学习内容学习内容1、BIWEB的使用常见问题解答的使用常见问题解答2、BIWEB目录结构和数据库分析目录结构和数

26、据库分析3、栏目如何更加独立和使用自定义内容、栏目如何更加独立和使用自定义内容4、从、从BIWEB我们学到了什么我们学到了什么关于关于BIWEB常见问题和结构分析常见问题和结构分析关于关于BIWEB常见问题和结构分析常见问题和结构分析1、BIWEB的使用常见问题解答的使用常见问题解答(1)为什么安装时白页或出错?)为什么安装时白页或出错?答:是否开启了答:是否开启了PDO和和PDO_Mysql 模块,还有的时候二次安装导致模块,还有的时候二次安装导致(2)为什么修改了文件后会乱码?)为什么修改了文件后会乱码?答:因为答:因为BIWEB全站使用的是全站使用的是UFT8模式,所以如果直接使用记事本

27、打开修模式,所以如果直接使用记事本打开修 改会导致编码错误,大家可以使用改会导致编码错误,大家可以使用EditPlus 或其他的编译工具。或其他的编译工具。(3)为什么我增加了新的模块后导航却没有?)为什么我增加了新的模块后导航却没有?答答:这是因为这是因为BIWEB的导航暂时还不是智能出现的,需要手工增加的导航暂时还不是智能出现的,需要手工增加(4)BIWEB是否适合英文网站的开发和支持是否适合英文网站的开发和支持PHP5.3?答:同上面所说,因为答:同上面所说,因为BIWEB使用的是使用的是UTF8编码所以开发英文网站老外看编码所以开发英文网站老外看 是没有问题的,新版的是没有问题的,新版

28、的BIWEB支持支持PHP5.3。关于关于BIWEB常见问题和结构分析常见问题和结构分析2、BIWEB目录结构和数据库分析目录结构和数据库分析红色红色目录代表系统框架重要目录,目录代表系统框架重要目录,紫色紫色目录代表功能栏目目录,目录代表功能栏目目录,黑色目录代表系统使用目录。黑色目录代表系统使用目录。红色目录中红色目录中,主要看整站配置文件目录和整站,主要看整站配置文件目录和整站可控配置文件目录,重点记住可控配置文件目录,重点记住BIWEB系统中重系统中重要的配置数组,系统公共配置数组都是要的配置数组,系统公共配置数组都是arrG开开头的,栏目配置数组以头的,栏目配置数组以arrM开头的。

29、开头的。紫色目录中紫色目录中,重点看新闻栏目,理解新闻栏目,重点看新闻栏目,理解新闻栏目中的配置和程序关系。中的配置和程序关系。黑色目录中黑色目录中,全部不用看,都是系统自用目录。,全部不用看,都是系统自用目录。数据库一句话概括:数据库一句话概括:前缀前缀_模块名模块名 如如:PHP100_news一个模块对应一张表很容易找到一个模块对应一张表很容易找到 关于关于BIWEB常见问题和结构分析常见问题和结构分析3、栏目如何更加独立和使用自定义内容、栏目如何更加独立和使用自定义内容其实每个模块都可以自定义数据库,独立配置一些参数。这样使每个栏目更加独立其实每个模块都可以自定义数据库,独立配置一些参

30、数。这样使每个栏目更加独立常见的配置文件在模块下面的常见的配置文件在模块下面的config目录下面:目录下面:var.inc.php 一般配置数据库信息一般配置数据库信息type.inc.php 一般配置分类信息,以数组的形式存在一般配置分类信息,以数组的形式存在private.inc.php 一般改模块的私有变量信息都在这里,如一般改模块的私有变量信息都在这里,如smarty、分页等、分页等config.inc.php 一般是模块中需要调用的文件或内容一般是模块中需要调用的文件或内容4、从、从BIWEB我们学到了什么我们学到了什么俗话说见多识广,虽然这个程序不能说是完美的程序,但从结构和代码

31、的规范俗话说见多识广,虽然这个程序不能说是完美的程序,但从结构和代码的规范程度是值得我们学习的,尤其是在扩展性上。初学者写全站可能考虑不到这么大程度是值得我们学习的,尤其是在扩展性上。初学者写全站可能考虑不到这么大的扩展型,但要知道这是完全可以实现的,所以这也是我们写程序的方向。的扩展型,但要知道这是完全可以实现的,所以这也是我们写程序的方向。下面的课我讲一些开发中常用的规范。下面的课我讲一些开发中常用的规范。开发规范开发规范1、PHP中对各类变量内容的命名规范中对各类变量内容的命名规范2、PHP中函数、符号、运算写作规范中函数、符号、运算写作规范3、PHP中各类注释规范中各类注释规范4、数据

32、库设计与操作规范、数据库设计与操作规范PHP与数据库代码开发规范与数据库代码开发规范PHP与数据库代码开发规范与数据库代码开发规范1、PHP中对各类变量内容的命名规范中对各类变量内容的命名规范(1)目录命名、文件命名、局部变量命名:)目录命名、文件命名、局部变量命名:使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写目录:目录:upload、templates、install、manage文件:文件:index.php、register.php 、config.php变量:变量:$user,$pay_time,$pay_

33、del_cont(2)全局常量命名:)全局常量命名:使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词define(WEBSITE_NAME,名称名称);define(WEBSITE_URL,地址地址)PHP与数据库代码开发规范与数据库代码开发规范1、PHP中对各类变量内容的命名规范中对各类变量内容的命名规范(3)数组变量命名:)数组变量命名:英文名词、动词,以下划线作为分隔,所有字母均使用小写以英文名词、动词,以下划线作为分隔,所有字母均使用小写以array结束结束$scope_array =array();$book_i

34、d_array=array();(4)对象变量命名:)对象变量命名:英文名词、动词,以下划线作为分隔英文名词、动词,以下划线作为分隔,可以完整采用类名或是简化类名,但是可以完整采用类名或是简化类名,但是必须明确知道是什么类,所有字母均使用小写,在变量后加上必须明确知道是什么类,所有字母均使用小写,在变量后加上_obj$user_obj =new userAccount();$pay_obj =new payOrder();(5)类的命名:)类的命名:使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首个字母使用

35、小写,不使用下划线个字母使用小写,不使用下划线class userAccount PHP与数据库代码开发规范与数据库代码开发规范1、PHP中对各类变量内容的命名规范中对各类变量内容的命名规范(6)方法命名:)方法命名:使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写class userAccount public$name_account=;function is_account_ok().function add_account().关于对象属性的命名同理!关于对象属性的命名同理!PHP与数据库代码开发规范与数据库代

36、码开发规范2、PHP中函数、符号、运算写作规范中函数、符号、运算写作规范(1)if语句大括号语句大括号规则:规则:将大括号放置在关键词后方将大括号放置在关键词后方使用使用IF语句尽量使用大括号语句尽量使用大括号if($condition).else if($condition1).else.尽可能避免右边使用方式尽可能避免右边使用方式PHP与数据库代码开发规范与数据库代码开发规范2、PHP中函数、符号、运算写作规范中函数、符号、运算写作规范(2)、)、switch规则规则 每个每个case块结束处必须加上块结束处必须加上break,而,而default总应该存在处理未知情况,例:总应该存在处理

37、未知情况,例:switch($condition)case user:.break;case type:.break;default:.break;(3)、声明定位规则)、声明定位规则声明代码块需要对齐,且初次使用变量时需要初始化声明代码块需要对齐,且初次使用变量时需要初始化$tableName=;$databaseObject=;尽量不使用以下方式,例:尽量不使用以下方式,例:$tableName;$accuntName=;$databaseObject=;PHP与数据库代码开发规范与数据库代码开发规范2、PHP中函数、符号、运算写作规范中函数、符号、运算写作规范html的的form表单各个

38、元素名称与数据库字段尽量保持一致。表单各个元素名称与数据库字段尽量保持一致。不要采用缺省方法测试非零值,必须显式测试,例:不要采用缺省方法测试非零值,必须显式测试,例:if($name_pay_into!=false).else.*尽可能使用单引号尽可能使用单引号而不是双引号而不是双引号,在需要加入变量或是写在需要加入变量或是写sql语句除外。语句除外。*php文件中尽可能不出现文件中尽可能不出现html语句,如果实在无法解决尽量少用,考虑到模板的兼容性,语句,如果实在无法解决尽量少用,考虑到模板的兼容性,html文件中尽可能避免出现文件中尽可能避免出现php语句。语句。*通常每个方法只执行一

39、项逻辑动作事务,所以对它们的命名应该清楚的说明它们是做什么的:通常每个方法只执行一项逻辑动作事务,所以对它们的命名应该清楚的说明它们是做什么的:用用email_error_check()代替代替error_check()。请注意命名不要与系统方法冲突。请注意命名不要与系统方法冲突。PHP与数据库代码开发规范与数据库代码开发规范3、PHP中各类注释规范中各类注释规范/*分页预处理函数分页预处理函数*sqlSQL语句语句*page当前页数当前页数*limit每页显示的数量每页显示的数量*maxs查询总数查询总数*/function limit($sql,$page=0,$limit=10,$max

40、s=)/用户检测用户检测if($check_obj-username($username)=true)$user_name=$_GETuser;/获取用户信息获取用户信息PHP与数据库代码开发规范与数据库代码开发规范4、数据库设计与操作规范、数据库设计与操作规范数据库规范数据库规范数据库名称应该由概述项目内容的小写英文名词组成,以下划线分隔单词,数据库名称应该由概述项目内容的小写英文名词组成,以下划线分隔单词,避免跨平台时可能出现的避免跨平台时可能出现的大小写错误大小写错误。数据表名称应该由数据表名称应该由物件对象名称物件对象名称的小写英文名词组成(尽可能对应系统中的的小写英文名词组成(尽可能

41、对应系统中的业务类名称),以下划线分隔单词,避免跨平台时可能出现的大小写错误。业务类名称),以下划线分隔单词,避免跨平台时可能出现的大小写错误。数据表的字段应避免使用数据表的字段应避免使用varchar、text等不定长的类型,等不定长的类型,时间信息的字段使用时间信息的字段使用int类型存储。类型存储。查询数据连接多表时各资源应该使用全名称,即查询数据连接多表时各资源应该使用全名称,即tableName.fieldName,而不是而不是fieldName。SQL语句应尽可能符合语句应尽可能符合ansi92标准,避免使用特定数据库对标准,避免使用特定数据库对SQL语言的扩充特性。语言的扩充特性

42、。开发规范开发规范1、设计新闻系统简单的、设计新闻系统简单的UML模模2、设计所需的环境、模块、模板样式、设计所需的环境、模块、模板样式3、数据库、数据库UML设计和创建数据库结构设计和创建数据库结构PHP+MySQL新闻系统的开发搭配底层搭配底层1、建立底层结构和文件夹、建立底层结构和文件夹2、连接相关类和和配置数据库、连接相关类和和配置数据库3、调试后台并增加后台登陆管理功能、调试后台并增加后台登陆管理功能PHP+MySQL新闻系统的开发PHP+MySQL新闻系统的开发1、建立底层结构和文件夹、建立底层结构和文件夹建立新项目建立新项目后台文件夹后台文件夹admin后台函数文件夹后台函数文件

43、夹common根目录缓存文件夹根目录缓存文件夹cache函数文件夹函数文件夹common 全站配置文件夹全站配置文件夹config全站图片脚本等文件夹全站图片脚本等文件夹 imagesSmarty模板和模板缓存文件夹模板和模板缓存文件夹PHP+MySQL新闻系统的开发2、连接相关类和和配置数据库、连接相关类和和配置数据库三个准备类:三个准备类:Smarty 2.6.26mysql.class.phppage.class.php模板引擎模板引擎数据库类数据库类分页类分页类配置文件:配置文件:Config.php 配置全站参数配置全站参数action.class.php 动作及其相关函数动作及其相

44、关函数同一调用文件:同一调用文件:global.php 全局文件全局文件PHP+MySQL新闻系统的开发3、调试后台并增加后台登陆管理功能、调试后台并增加后台登陆管理功能开发详情见开发详情见60、61讲讲1、设置登录状态、设置登录状态2、保证后台的独立性,可以随意更改文件夹名称、保证后台的独立性,可以随意更改文件夹名称3、后台统一调用全站参数。、后台统一调用全站参数。后台开发后台开发本讲重点是熟练运用类、数组、表单、循环完成本讲重点是熟练运用类、数组、表单、循环完成后台管理的基本开发和操作。后台管理的基本开发和操作。开发:后台配置模块、新闻分类模块开发:后台配置模块、新闻分类模块PHP+MyS

45、QL新闻系统的开发后台开发后台开发本讲重点是熟练运用类、数组、表单、循环完成本讲重点是熟练运用类、数组、表单、循环完成后台管理的基本开发和操作。后台管理的基本开发和操作。开发:后台配置模块、新闻分类模块开发:后台配置模块、新闻分类模块PHP+MySQL新闻系统的开发后台开发后台开发新闻后台:添加新闻,新闻列表,编辑新闻新闻后台:添加新闻,新闻列表,编辑新闻学习重点:灵活运用,学习重点:灵活运用,插插 查查 删删 改改 功能功能PHP+MySQL新闻系统的开发PHP+MySQL新闻系统的开发admin_news_add.phpadmin_news_list.phpadmin_news_edit.

46、php新闻编辑,通过新闻编辑,通过ID获取新闻内容并更新获取新闻内容并更新添加新闻,分别添加到新闻基础表和内容表添加新闻,分别添加到新闻基础表和内容表主要学习添加完后获得最后主要学习添加完后获得最后id新闻列表,复合查询、列表分页,删除等操作新闻列表,复合查询、列表分页,删除等操作重点:灵活运用,插查删改功能重点:灵活运用,插查删改功能前台的开发前台的开发主要学习如何使用主要学习如何使用Smarty模板开发前台应用模板开发前台应用PHP+MySQL新闻系统的开发PHP+MySQL新闻系统的开发注意事项:注意事项:1、配置模板图片,、配置模板图片,Css路径路径 2、尽可能的将变量写入数组、尽可

47、能的将变量写入数组 3、模板文件名尽可能的与、模板文件名尽可能的与PHP文件相关文件相关 4、为了方便使用书写通用调用方法,将、为了方便使用书写通用调用方法,将header.php footer.php独立出来独立出来前台的开发前台的开发主要学习如何使用主要学习如何使用Smarty模板开发前台应用模板开发前台应用PHP+MySQL新闻系统的开发前台的开发前台的开发主要学习如何使用主要学习如何使用Smarty模板开发前台应用模板开发前台应用PHP+MySQL新闻系统的开发9、静夜四无邻,荒居旧业贫。3月-233月-23Friday,March17,202310、雨中黄叶树,灯下白头人。03:42

48、:3803:42:3803:423/17/20233:42:38AM11、以我独沈久,愧君相见频。3月-2303:42:3803:42Mar-2317-Mar-2312、故人江海别,几度隔山川。03:42:3803:42:3803:42Friday,March17,202313、乍见翻疑梦,相悲各问年。3月-233月-2303:42:3803:42:38March17,202314、他乡生白发,旧国见青山。17三月20233:42:38上午03:42:383月-2315、比不了得就不比,得不到的就不要。三月233:42上午3月-2303:42March17,202316、行动出成果,工作出财富

49、。2023/3/173:42:3803:42:3817March202317、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。3:42:38上午3:42上午03:42:383月-239、没有失败,只有暂时停止成功!。3月-233月-23Friday,March17,202310、很多事情努力了未必有结果,但是不努力却什么改变也没有。03:42:3803:42:3803:423/17/20233:42:38AM11、成功就是日复一日那一点点小小努力的积累。3月-2303:42:3803:42Mar-2317-Mar-2312、世间成事,不求其绝对圆满,留一份不足,可得无限完美。

50、03:42:3803:42:3803:42Friday,March17,202313、不知香积寺,数里入云峰。3月-233月-2303:42:3803:42:38March17,202314、意志坚强的人能把世界放在手中像泥块一样任意揉捏。17三月20233:42:38上午03:42:383月-2315、楚塞三湘接,荆门九派通。三月233:42上午3月-2303:42March17,202316、少年十五二十时,步行夺得胡马骑。2023/3/173:42:3803:42:3817March202317、空山新雨后,天气晚来秋。3:42:38上午3:42上午03:42:383月-239、杨柳散和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 考试试题 > 一级建造

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com