一份代码编写标准

2016-01-29 19:47 7 1 收藏

一份代码编写标准,一份代码编写标准

【 tulaoshi.com - ASP 】

一、通用源代码格式规则
1.1 开发工具

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

推荐使用Microsoft  公司的Visual InterDev 来书写ASP 代码,使用Macromedia ? 公司的Dreamweaver 来书写HTML代码,也可以使用UltraEdit、ASPEdit 2000等开发工具。

1.2 缩进空格

缩进空格是指在每一级有两到四个空格。不要在源代码中保留TAB字符,这是因为TAB字符会随着不同用户的不同设置和不同的资源管理工具(打印、文档、版本控制等)而代表不同的宽度。

1.3 数据合法性检查

所有表单提交页面中,表单上必须填写项目和填写项目中非法输入的判断都在页面中用javascript在客户端判断,如果必须和服务器端数据比较才能判断输入项目是否正确不在此例。
所有提交的信息(GET方式及POST方式)都必须在服务器端重新进行数据合法性校验,并过滤非法字符(& ; ` ' " | * ? ~ < ^ ( ) [ ] { } $ n r),例如,将"'"替换成"''" (两个单引号)号(替换字符串的工作将统一使用公共的CheckInputString(str) 函数);而对于数字型变量,要检查输入的数据是否全为数字(javascript中使用isFinite或isNaN, VbScript中使用IsNumeric)。

1.4 参数传递

建议使用POST方法,而不推荐使用GET方法;
严禁使用GET方法、SESSION或其它方式传递SQL语句;
禁止使用GET方式传递大量的查询字符串,特别是未经编码的汉字,HTTP协议传送表单域比查询字符串效率要高,而且带有一个大的查询字符串的页面在某些浏览器上会失效;
禁止使用SESSION、COOKIE传递非会话期间必要的参数。

1.5 URL

包含头文件,页面的链接,提交的页面,用到的图片,如果引用的是如"include"、"image"等公共部分,必须使用绝对路径,即以虚根目录"/"开始的路径,以提高运行效率。例如:

6.4 使用最简单的游标类型和记录锁定方式

在 ADO 中定义了四种不同的游标类型:
l动态游标(adOpenForwardOnly) - 用于查看其他用户所作的添加、更改和删除,并用于不依赖书签的 Recordset 中各种类型的移动。如果提供者支持,可使用书签。
l键集游标(adOpenKeyset) - 其行为类似动态游标,不同的只是禁止查看其他用户添加的记录,并禁止访问其他用户删除的记录,其他用户所作的数据更改将依然可见。它始终支持书签,因此允许 Recordset 中各种类型的移动。
l静态游标(adOpenDynamic) - 提供记录集合的静态副本以查找数据或生成报告。它始终支持书签,因此允许 Recordset 中各种类型的移动。其他用户所作的添加、更改或删除将不可见。这是打开客户端 (ADOR) Recordset 对象时唯一允许使用的游标类型。
l仅向前游标(adOpenStatic) - 除仅允许在记录中向前滚动之外,其行为类似动态游标。这样,当需要在 Recordset 中单程移动时就可提高性能。

在打开 Recordset 之前设置 CursorType 属性来选择游标类型,或使用 Open 方法传递 CursorType 参数。部分提供者不支持所有游标类型。请检查提供者的文档。如果没有指定游标类型,ADO 将默认打开仅向前游标。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

在 ADO 中定义了四种不同的游标类型:
ladLockReadOnly - 默认值,只读。无法更改数据。
ladLockPessimistic - 保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。
ladLockOptimistic - 开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。
ladLockBatchOptimistic - 开放式批更新。用于与立即更新模式相反的批更新模式。

打开 Recordset 前设置 LockType 属性可指定打开时提供者应该使用的锁定类型。读取该属性可返回在打开的 Recordset 对象上正在使用的锁定类型。Recordset 关闭时 LockType 属性为读/写,打开时该属性为只读。

在实际使用过程中应该使用适合于处理任务的最简单的游标类型和记录锁定方式。例如:

仅打开一个静态的记录集并输出:
Rs.Open sql,Conn,0,1 ' adOpenForwardOnly, adLockReadOnly
打开的记录集中有text类型的字段:
Rs.Open sql,Conn,1,1 'adOpenKeyset, adLockReadOnly

6.4 SQL字符串过滤

所有的字符串输入框在向数据库提交查询、插入、删除或修改一条记录时必须用字符串过滤函数检查,即:
字符型:复写提交内容中的"'"、"''"等(使用公共函数的CheckInputString()。),并检查字符串的长度是否超长。
数值型:使用IsNumeric()判断输入是否为数字。
整 型:使用Int(), Fix(),Round() 截取其整数值。
日期型:使用isDate()函数判断是否为正确的日期输入。

6.5 SQL事务执行

对数据库操作的事务一般应当使用SQL的存储过程执行。对于需要在ASP页面中执行的数据库操作,所有插入、删除、修改数据库不得使用RecordSet对象,必须使用Connect对象用SQL语句执行,RecordSet只在执行查询时使用。所有检索数据库的操作禁止使用"SELECT * FROM …",而要使用"SELECT 字段一, 字段二, 字段三, … FROM…"。

6.6 A

来源:http://www.tulaoshi.com/n/20160129/1510094.html

延伸阅读
一、基础装修 1、墙体改动:拆除旧墙体、砌墙体、线槽剔打、包落水管式异构体。 2、提供水管(冷、热水管)、电线(强电、弱电)、气管材料及安装铺设。 3、卫生间铺设排水管,轻质材料回填、找平。 4、厨房、卫生间、阳台墙面(不低于1.8米)、地面防水处理。 5、各房间地面找平处理。 6、客厅地砖,阳台地...
标签: Web开发
{ hide_text } CSS文字隐藏总结报告 最近整理的一份 CSS 文字隐藏的 demo ,总结了几种方法,希望得出一种最完美的方案放进自己的代码片段,可是,到最后却陷入一种重复不断地推翻结论的境地。因为需要考虑的应用场景和元素实在太多,放下浏览器不谈,不同的应用终端,不同的标签结构会有不一样的最优方案,因此,与其希望在工作上多...
标签: PS PS教程
  以前在网上看到过一种图片,原图是一个人,按CTRL+A后就变成另一个人,非常好奇,百思不得其解,偶尔,看了糖果果的隐形彩照教程后,顿悟,就做了一个自己称为“双层彩照”的东东贴在这里,没想到感兴趣的朋友挺多,我不敢独享,写出这个非常粗糙的东东来算是抛砖引玉吧。 最终效果: 1.打开两幅素材 2.将...
银杏书签制作视频 准备材料 需要用到的材料有银杏叶、剪刀、圆珠笔,先把银杏叶进行修剪,枝太长可以剪短一点,如果叶片表面有脏东西可以用水冲洗干净,等其晒干。 写上文字 用树片快要干透的情况下用笔在银杏叶上写上祝福的文字,每一片叶片上所写的话都可以,写字尽量轻一点以免戳破银杏树叶片。 成品展示 做好...
导语: 许多人怕麻烦往往浪费掉许多废弃物, 利用闲置的废物可以化腐朽为力量 ,重塑他们的价值。 接下来,图老师就为朋友们传授 家居 DIY旧物改造的10大神招,希望大家能从中受到启发。 选定你需要遮住的部分,也可以考虑改造之后的视觉效果再做具体安排,利用拉杆和帆布遮挡书架上凌乱的那块空间...

经验教程

747

收藏

23
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部