仓酷云

标题: ASP网页编程之ASP中简略单纯用户会见掌握(2) [打印本页]

作者: 深爱那片海    时间: 2015-2-3 23:28
标题: ASP网页编程之ASP中简略单纯用户会见掌握(2)
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。       利用Session变量的成绩
         固然Session变量是复杂易用的,并且比其他办法要平安,但仍是有一些成绩。起首,只要会见者的阅读器撑持cookie时,Session变量才干正常任务。虽然如今大多半阅读器都撑持cookie,然而记住会见者可以回绝利用它(这依附于阅读器的平安设置)。
         其次,出格在IIS4中,当阅读器恳求多个页面时,Session变量能够被中途丧失。凡是,遵守上面三个复杂准绳可以将这个破绽削减到最小:
         ○ 只利用一个global.asa文件,放置在站点的根目次下。附带多个global.asa的嵌套使用法式,能够招致session变量利用越界。
         ○ 确认IUSE帐号或它所属的组对global.asa文件最少有读的权限,而且IIS具有Anonymous会见权限。
         ○ 要确认在一切页面中你都利用一样的字符巨细写格局。Netscape(和其他阅读器)关于/ThisFolder/ThisFile.asp 和 /thisfolder/thisfile.asp 这两个链接是看成在两个分歧目次下的两个分歧文件对待的。所以当从页面中取回一个cookie时,能够会由于巨细写成绩产生毛病。
在数据库中保留登录信息
        假如需求跟踪大批会见者的信息,仅仅利用include文件的体例就会变得很难办理。这时候,咱们可使用数据库。使用此手艺,一样合用于运转会见者到场或在线挂号的情形,而且将他们到场用户列表。关于这个成绩在此不做进一步切磋。
        利用数据库处置全体的进程长短常复杂的!当用户供应了登录信息后,利用SQL的SELECT号令在数据库中查找输出的用户名,并取回婚配的口令。假如取回的口令与输出的口令分歧,就答应他们进入下一步:
        strSQL = "SELECT sPassword FROM Users " _ & "WHERE sUsername = " & Request("v1") & ""
        到场登录信息的成绩
        但是,到场新用户是一个小困难。假如发明用户在数据库中不存在,而且决意利用ASP主动到场他们,咱们就必需注重了。换言之,当用户填写新的信息时,能够有别的的用户利用一样的用户名在做一样的工作,并且后者举措快,起首在数据库中保留了信息,如许,前者的到场任务就不克不及完成。
有2个明显的办法可以免这个景象。一个办法是:主动创立一个带空口令的新纪录,用户往后可以修正它:
        strSQL = "INSERT INTO Users (sUserName, sPassword) " _ & "VALUES(" & Request("v1") & ", null)"
         一个更好的办法是:假如新纪录创立胜利,就利用一个进程前往一个特别的数值(好比用户名),或,假如不胜利,前往毛病信息。如许,用户就能够选择一个新的用户名。上面的例子是利用SQL Server存储进程,假如到场新纪录胜利,就前往用户名,假如用户名已存在,就前往空字符串:
CREATE PROCEDURE AddUser @s_user varchar(12), @s_pword varchar (12) AS
IF EXISTS (SELECT * FROM Users WHERE sUserName = @s_user)
SELECT
ELSE
BEGIN
INSERT INTO Users (sUserName, sPassword)
VALUES(@s_user, @s_pword)
SELECT sUserName FROM Users WHERE sUsername = @s_user
END
        如许就能够在ADO中履行这个进程,并反省前往值来确认是不是添加胜利。假如掉败,就告诉用户选择一个新用户名。这里有一些代码描写了若何利用上述的存储进程,你可以从本文下载的文件中找到这些代码。
        以下是从表单中搜集的数据:
strUserName = "NewUser1"
strPassword = "ThePassword"
         界说数据库毗连:
strConnect = "DRIVER={SQL Server};SERVER= yourserver ; " _
& "DATABASE= yourdatabase;UID= yourusername;PWD= yourpassword ;"
创立并翻开数据库毗连:
Set oCon = Server.CreateObject("ADODB.Connection")
oCon.Open strConnect
创立command对象,设置属性
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = oCon our open connection
oCmd.CommandType = 4 its a stored procedure
oCmd.CommandText = "AddUser" the procedure name
供应参数履行command对象,失掉了局:
Set oRs = oCmd.Execute (lngRecsAffected, Array(strUserName,strPassword))
strResult = Trim(oRs.Fields(0)) ADO may add a space to the result
显示了局,假如毛病,显示“user exists warning”:
If strResult = "" Then
Response.Write "User Already Exists"
Else
Response.Write "Added new user: 〈 B 〉" & strResult & "〈 /B 〉"
End If
% 〉

asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.
作者: 小女巫    时间: 2015-2-3 23:32
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 若天明    时间: 2015-2-11 09:15
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
作者: 飘飘悠悠    时间: 2015-2-11 20:43
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: 只想知道    时间: 2015-3-2 18:21
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: 乐观    时间: 2015-3-3 11:23
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
作者: 不帅    时间: 2015-3-8 00:20
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 莫相离    时间: 2015-3-15 17:41
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
作者: 变相怪杰    时间: 2015-3-15 22:47
掌握asp的特性而且一定要知道为什么。
作者: 再见西城    时间: 2015-3-22 17:12
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
作者: 深爱那片海    时间: 2015-3-23 12:10
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
作者: 简单生活    时间: 2015-3-28 05:06
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 第二个灵魂    时间: 2015-3-31 17:48
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
作者: 山那边是海    时间: 2015-4-6 14:01
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
作者: 飘灵儿    时间: 2015-4-6 22:10
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
作者: 柔情似水    时间: 2015-4-21 07:14
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
作者: 活着的死人    时间: 2015-4-24 13:13
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: admin    时间: 2015-4-26 07:09
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: 灵魂腐蚀    时间: 2015-4-27 18:06
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: 兰色精灵    时间: 2015-4-29 16:20
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2