快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ASP开发WEB站点

一般的大型网站目前已经越来越少的使用ASP来架构,不过在中小型商务站点上,ASP依然占据了较大的市场范围。ASP以其简朴,开发周期短,易维护的长处受到中小型站点治理员的青睐。不过,据我所知,完全使用ASP来集成更新维护网站的仅常见于那些真正的商务站点或者比较成熟的技术站点,更多的网站仅仅有一些独立的栏目在使用ASP程序。这样的特点是站点治理过于分散,比如:每进入一个栏目治理都要输入不同的帐号和密码。不仅浪费治理员的精力,更加重了网站的维护困难程度。而我们看见的那些单栏目使用的ASP程序有很多是从网上寻找的源代码,这样使你的网站安全性也会受到一定的威胁,因为网上提供的源代码都是开放的,每个人都可以研究这个代码,当然后果你也知道,ASP的安全性本来就是一个受用户长期关注的问题,而被开放的源代码更是危险。当然我并不是不赞成大家使用网上的源代码,只是希望各位能够注重这个问题,不要完全信仰拿来主义,该修改的地方还是要修改,该打补丁的地方还是要打上补丁(当然绝不是让你去修改人家的版权信息)。

综上所述,我觉得凡是对ASP有一定了解的人都可以自己开发一套整站系统,并且使集成化的。本专题的目的就是为了指引大家如何建立一套完整的web动态站点。

为了使各个层次的读者都能看懂本文,有必要先讲讲下面这些话:

假如你是初学者,你应该把握什么?
必要的VBScript和JavaScript。VBS作为主要的ASP程序编写语言来自于Visual Basic,学过VB的人可以很快的把握,JavaScript就不用说了,嵌入在网页里面,客户端使用平凡的脚本语言。你最好拥有一定的HTML语言知识,不然会觉得很恼火。

SQL语句基础亦是基础!
初期你不必把握全部,基本的就可以了。

前提:我们将用最基本的语句和功能编写一套web动态站点的整站系统。

您只要认真看完此专题,可以基本把握web整站开发的思想,并已能赋予实际应用。当然,随学习的深入,您可以加入更多的功能或对程序算法进行改进。


(1)对网站进行需求分析:

很多人都忽略了这一点,他们认为开发web站点程序不需要用软件工程的思想,实际上最后会导致web站点的无序化,比如:一些人想到要开发什么站点想都不想,直接开始写代码,想到什么就写什么,直到他们写完之后,才发现我还需要什么功能没有写,然后就马上返回加代码。这样的话,使得程序极易出错。所以一开始的时候还是建议你像软件工程相同,制定web站点开发的需求分析,应包括所开发web系统的基本要求,如:功能,性能,用户群,基本的数据流程和处理流程,安全与保密的要求。web系统的目标,条件、假设、限制等。

具体一点来说,就以我们的站点来说,它是一个技术型站点,就应包括新闻系统、文章系统、下载系统等等,那么这些系统需要具备哪些功能就是我们要分析的问题。

下面我们就从实例来分析要实现的功能:

新闻系统:一个新闻系统最重要的一点就是能够实时的把新闻传达给用户,那么新闻系统应该具备哪些功能?发布时间,点击次数,插入图片,以及对新闻来源赫作者的一些注释。当然发布时间这些都是异常轻易实现的功能。插入图片可以使用html功能,ubb转变表或上传图片来解决,这些方式本文就不再一一阐述,大家可以参考有关资料。

实际上,不管对于什么系统,当你在一开始对其需求进行了具体分析之后,实现起来肯定比想到哪写道哪轻松高效。假如方便的话用电脑或者纸将web系统的开发需求记录下来,在开发过程中也可以进行参考。这里还不得不提的一个话题是关于用户验证的,一般我们对用户的验证使用的是session和cookie,Session变量和cookies是同一类型的。假如某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个Session变量及cookies。一般来说,对于网站治理员的操作我个人推荐使用session,因为我们的主题是开发web整站,那么治理员肯定要在多个治理页面中跳转,在这里session是异常方便的。若是对用户进行验证,那么可以使用cookies,比如用户可以设置强制浏览器把cookie存储在计算机上面,只需要使用response.cookies的Expires属性就可以轻松的做到,还有一点就是因为sessionID的信息是异常轻易丢失的,对于用户这种长时间访问的集群,则必须通过在用户的web浏览器中存储一个专用的cookie,并且把cookie信息保存到数据库中来创建一个用户标识。

上面这一节我们讲到了web整站开发的先期需求分析,就我个人认为是在网站工程中异常重要的一步。


(2)组织和治理站点结构

往往在开发一个有一定规模的站点的时候,使站点具有较好的目录结构是一个值得注重的问题。商业应用的程序往往都要求具有在事务内部运行脚本和组件的能力。事务是服务器端的操作,简朴的说就是即便该操作包含了许多步骤,例如:下定单,查看定单,打印订单等也只能整体返回操作是成功还是失败。用户可以创建在事务内部运行的ASP脚本,假如教本的任何一部分操作失败,那么整个事务就终止。

这里我们要具体说明的并不是事务性脚本在整站中的应用,而是要让你在开发中不至于被众多的文件,众多的操作搅昏了头。

合理的对文件名进行组织。例如:我们将治理页面命名为admin.asp,而治理页面中对各个栏目进行操作的页面可以在admin后面加下划线然后命以这个栏目的名称,比如新闻治理页面admin_news.asp,下载治理页面admin_download.asp

关于文件的放置。我这里仅是以我得做法来讲解,相信各位能有自己的见解。将所有治理操作页面放置于同一目录下面,为的是更加方便的治理和分配权限。各个栏目用户页面可以放在一个目录下方便于治理。数据库可以放在统一的目录下面。

怎样减少文件的数量。你没有必要为每个添加,删除,修改或者别的操作新建许多页面,你可以使用参数来减少页面,打一个比方,在治理页面admin_news.asp中,当admin_news.asp?action=addnew的时候执行添加操作,当admin_news.asp?action=del的时候执行删除操作,这样将大大增强你站点集成化程度。

可以重用的代码。很多代码是可以重复使用的,比如UBB的转变表等,可以把它们单独放在一个目录中。


(3)开发后台治理
我不知道各位开发者是不是和我相同,先将后台开发完毕后再进行前台开发。或者你是混在一起来做。不过,我认为先开发后台是比较合适的。前面我们讲过先要对系统进行分析,要实现哪些功能自己心里要有个底。这样做起来才会事半功倍,也会减少许多不必要的错误。后台治理无非具有以下这些功能:
1)用户验证
2)添加网站数据
3)修改网站数据
4)删除网站数据
5)站点系统设置
6)站点访问统计
7)搜集用户信息
...
如何把他们同意的集中在一起治理,是我们要解决的问题。比如说用户验证我们可以这样来实现:

<%
...
username=replace(trim(request("username")),"\\\'","")
password=replace(trim(Request("password")),"\\\'","")
set rs=server.createobject("adodb.recordset")
sql="select * from admin where password=\\\'"&password&"\\\' and username=\\\'"&username&"\\\'"
rs.open sql,conn,1,1
if not(rs.bof and rs.eof) then
if password=rs("password") then
session("admin")=rs("username")
session("flag")=rs("flag")
else
end if
else
end if
...
%>

username和password是从用户表单输入传递过来的值,你一定要注重用replace处理一次后再和数据库中存储的值进行对比。因为我们知道username=\\\'username\\\'是恒等的,必须把用户输入的\\\'去掉。

通过验证后建立一个session变量,可以很方便的在各个治理页面中进行治理。
要对用户进行验证的页面可以这样写:

<%if session("admin")="" then
response.write "no access"
else
...
end if
%>

有人在数据处理的页面会遗忘写这个验证,这是异常危险的,用户可以通过这个缺陷非法提交数据。

再来说说如何收集用户信息,这好像都不涉及到太多技术了,一般可以这么做,比如你站点的特色是提供自主产权的软件下载,你可以让用户在下载前填写用户信息表,这个方式在外国网站用的比较多,在中国还很少见,我的网站就拥有这个功能,让我轻松的知道来自美国和新西兰的用户比较多。

在进行后台治理开发的时候还往往碰到这个问题,为不同的治理员分配不同的权限。仅以西路整站系统讲一种方式。在上面验证用户的时候我们还将flag写入了session变量,我们可以通过flag来判定用户级别,当然前提是你已经为flag分配了不同的值。详细可以这样实现:

<%
select case session("flag")
case "1"
case "9"
case "10"
case else
%>
<script language="javascript">
if (confirm("您的操作权限不够(进入站点新闻设置界面需要第1或9,10级权限),系统拒绝你的访问,请点确定返回,或者点取消退出重新登录"))
location.href="admin.asp";
else
location.href="quit.asp";
</script>
<%end select%>

以上确定了三种级别可以进入该操作页面的治理员。当然这里仅仅是说明了一种简朴的验证方式,其实你亦可以使用split函数等来确定用户权限。
返回类别: 教程
上一教程: ASP连接SQL SERVER2000数据库例程
下一教程: STRIPNONNUMERIC函数源程序

您可以阅读与"ASP开发WEB站点"相关的教程:
· ASP开发必备:WEB打印代码大全
· 关于如何保障Winnt+asp +sql web站点安全经验
· 开发WEB站点编程常用的代码2
· 开发WEB站点编程常用的代码1
· 关于如何保障Winnt +asp +sql web站点的安全经验(2)
    微笑服务 优质保证 索取样品