|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码web|投票|投票2、查询拜访项目标创立和保护
作者:神仙掌事情室
本节我们申明查询拜访项目创立和保护功效的完成。
创立与保护查询拜访项目标肇端页面是Startup.html,该页面卖力设定PollMaker.asp和ItemMaker.asp等页面利用的帧布局(从上到下共分三个帧)。肇端页面所援用的Blank.html只用于指定背景色彩,StartMsg.html供应启动时显现在最上面帧的提醒信息。
PollMaker.asp和ItemMaker.asp都包括运转于服务器的ASP剧本,同时也包括(和创立)扫瞄器剧本以撑持客户端操纵。运转于服务器的剧本由VBScript写成,而客户端剧本则是JavaScript,这使得它既能够运转于NetscapeNavigator,也合适于IE。
PollMaker.asp经由过程查找Poll数据库的MSysObjects体系表取得已界说的查询拜访项目名字。因而,ASP使用必需具有读取该表的权限。在Access97中的设定办法是:先选择菜单“工具/选项”设置体系工具可见,然后在“工具/平安/用户与组的权限”下设定。在本文所附代码中Poll.mdb已设置了这个权限。假如要在分歧的RDBMS上完成这个查询拜访体系,这部分代码必需改写,使它顺应方针数据库上的体系表布局。
要将这些已界说的查询拜访项目名字显现到下拉列表框,起首必要从S_表的表名中撤除“S_”前缀,然后将这些字符串格局化为<SELECT>元素的<OPTION>字符串:
<SELECTNAME="PollName">
<OPTIONVALUE="StartPoll"SELECTED>NEWPOLL
<%
猎取以后已界说的查询拜访项目名字
SetobjConn=Server.CreateObject("ADODB.Connection")
objConn.Open"poll"
SetobjRS=_
objConn.Execute("SELECTNameFROMMSysObjects"&_
"WHEREType=1ANDNameLIKES_%ORDERBYName")
DoWhileNotobjRS.EOF
PollName=Mid(objRS("Name"),3)
Response.Write("<OPTIONVALUE="""&PollName&""">"&PollName)
objRS.MoveNext
Loop
%>
</SELECT>
ItemMaker将指定查询拜访项目标一切界说信息下载到扫瞄器真个JavaScript数组中,从而完成成绩的疾速编纂和创立。一切的成绩编纂操纵都在扫瞄器内经由过程修正两个JavaScript数组完成,只要单击“保留”按钮才可将修正了局写进数据库。
ItemMaker.asp起首将Response.Buffer设置为True,因而在页面熟成完成之前HTML输入将一向缓冲在服务器上,这使得发生毛病或实行非编纂功效时ItemMaker.asp能够不下载那些JavaScript函数而加入。在SubMain的入手下手处,程序经由过程反省表单变量OpType来决意是创立新的查询拜访项目,仍是删除查询拜访项目或查询拜访了局。这三个操纵均在ItemMaker.asp内完成,即一切受暗码回护的功效均在统一剧本内完成,这使得全部体系中暗码只在一个中央存取。上述三个操纵均需静态地天生与实行SQL语句。不管是剧本实行呈现毛病,仍是指定的操纵实行乐成,都挪用Response.Redirect语句从头加载PollMaker.asp,并把一个申明字符串传送给它:
<%
DimPollName
DimPassword
DimobjConn
DimobjRS
PollName=Request("PollName")
Password=UCase(Request("Password"))
OpType=Request("OpType")请求ItemMaker.asp实行的操纵
SName="[S_"&PollName&"]"
AName="[A_"&PollName&"]"
RName="[R_"&PollName&"]"
CallMain
SubMain
IfPassword"WEBPOLL"Then如暗码毛病前往PollMaker.asp并提醒
Response.Redirect"PollMaker.asp?Msg=暗码毛病,请再试一次。"
ExitSub从ItemMaker.asp前往
EndIf
IfOpType="Edit"Then编纂或创立查询拜访查询拜访项目
IfPollName="StartPoll"Then
IfNotnewPoll()Then用户没有给出查询拜访项目标名字
Response.Redirect"PollMaker.asp?Msg=请输出查询拜访项目名字"
ExitSub
EndIf
SName="[S_"&PollName&"]"
AName="[A_"&PollName&"]"
RName="[R_"&PollName&"]"
EndIf
ElseIfOpType="DelResp"Then删除查询拜访项目标已有了局
IfPollName="StartPoll"Then
Response.Redirect"PollMaker.asp?Msg=请输出查询拜访项目名字"
ExitSub
EndIf
SetobjConn=Server.CreateObject("ADODB.Connection")
objConn.Open"poll"
SetobjRS=Server.CreateObject("ADODB.Recordset")
objConn.Execute"DELETEFROM"&RName
Response.Redirect"PollMaker.asp?Msg=已删除指定查询拜访项目标投票了局"
ElseIfOpType="DelPoll"Then删除全部查询拜访项目
IfPollName="StartPoll"Then
Response.Redirect"PollMaker.asp?Msg=不克不及删除新查询拜访项目"
ExitSub
EndIf
SetobjConn=Server.CreateObject("ADODB.Connection")
objConn.Open"poll"
SetobjRS=Server.CreateObject("ADODB.Recordset")
objConn.Execute"DROPTABLE"&SName
objConn.Execute"DROPTABLE"&AName
objConn.Execute"DROPTABLE"&RName
Response.Redirect"PollMaker.asp?Msg=已删除指定的查询拜访项目。"
EndIf
%>
在运转ItemMaker.asp编纂查询拜访项目时,程序提取Poll数据库中界说的查询拜访项目及其成绩界说数据初始化数组stemArray[]和ansArray[]。这些用来初始化的字符串在写进时经由“本义”处置(即挪用Escape()函数),从而制止了因为嵌进的引号或别的把持字符大概招致的成绩,在利用这些数组之前这些字符串被复原(initPoll()函数):
 </p>ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。 |
|