1.我们可以使用哪个ASP对象取得表单字段的值,  当有一个会话发生时(用户浏览网页

客户端脚本加密后,只有服务器上安装有script engine 5(装ie5即可)才能解释执行,而NT/2000/XP则需要安装Internet Information Server(简称IIS),1.Asp是Active Server Pages的简称,1.我们可以使用哪个ASP对象取得表单字段的值,5.1.1  REQUEST对象,用ASP设计网站在线人数统计程序,  当有一个会话发生时(用户浏览网页,&gt,&lt

  问题:如何保护自己的ASP源代码不泄露?

 
一、Asp基本知识

第五章 对象与组件
 
5.1.1  REQUEST对象
1.我们可以使用哪个ASP对象取得表单字段的值?(request)。
2.若要将表单数据以字符串的方式附加在网址的后面返回服务器,必须将<form>标记的METHOD属性设置为(get)。
3.负责取得WEB服务器的环境变量值的集合是(servervariables)。
4.Request对象有几个属性?(1个)。
5.1.2  response对象(上)
1.下面哪些是ASP内置的对象?(Application  Server  Response)。
2.哪个ASP对象可以用来决定何时或如何将输出由服务器端传送到浏览器?(response)。
3.若要停止ASP程序的执行并将存放在缓冲区的输出传送至浏览器端,可以使用哪个方法?(response.end)。
4.若要将浏览器端导向至其它网页,可以使用哪个方法?(redirect)。
5.我们可以使用哪个属性设置放进缓存区的网页逾期时间长短?(expires)。
5.1.3  response对象(下)
1.Request对象和response对象都有cookies集合,request对象的cookies集合用来(取得用户cookies信息),response对象的cookies集合用来(设置cookies数据到浏览器)。
2.我们可以通过(response)对象的cookies集合的(expires)属性来设置cookies变量的过期时间。
3.Cookies的克星是(用户浏览器设置禁用cookies)。
5.1.4  session对象
1.Session和cookies一样都是存储在客户端浏览器中的(不是)。
2.Session对象无法记录数组、对象等复杂的数据类型(否)。
3.我们获取session变量的值只能通过
变量=session(“session变量名”)这一种方法(否)。
4.我们可以设置session对象的(Timeout)属性改变session对象的有效时间,如果要结束session我们使用session对象的(abandon)方法。
5.如果客户端禁用cookies的话,我们(不可以使用cookies,因为session信赖cookies的支持)。
5.1.5  application对象
1.下面正确的是(application变量和session变量存储在服务器端,cookies存储在客户端)。
2.Session变量和application变量一样都可以被所有用户共享,只是session变量的生存期要短一些而已,这条观点是(错误的)。
3.当用户关闭浏览器,或是在超时时间范围风没有任何动作时,Application对象会自动失效(否)。
4.Application对象的onstart事件触发条件是(第一个人第一次访问网站时),session对象的onstart事件触发条件是(某个人第一次访问网站内任意页面时)。
5.我们在操作application变量之前需要使用application.(lock)语句(锁定)application对象,而在操作完成后要使用application.(unlock)语句来(解锁)。
5.1.6  server对象
1.当我们有一个需要执行比较长时间的网页时,我们要设置server对象的(Scripttimeout)属性。
2.如果要将字符串进行编码,使它不会被浏览器解释为html语法,可以使用哪个方法?(HtmlEncode)。
3.如果要找出父目录的实际路径,我们应该使用(server.mappath(“…/”))。
4.我们可以使用server对象的(CreateObject)方法来将一个组件实例化,并且,在实例化组件时,需要使用(set)关键字。
5.2.1  FSO组件(上)
1.FSO组件和ASP内置对象一样,可以直接使用(否)。<实例组件后才可使用>
2.FSO组件的Drivexists方法可以用来检查文件是否存在(否)。<FileExists方法>
3.如果要复制文件夹,可以使用下列哪个方法(CopyFolder)。
4.我们要将d:a.txt复制到d:abc目录中,并改名为b.txt应该这样写,其中fs是已经建立好的FSO对象变量:fs.(CopyFile)
“d:a.txt” , ” d:(abcb.txt)”。
5.FSO对象的(gettempname)方法可以得到一个临时文件或文件夹名。
5.2.2  FSO组件(下)
1.下面这条语句的第三个参数意义是什么?(若打开的文件不存在就建立)
    FS.OpenTextFile(“a.txt”,1,Ture)
2.如果要从文件中读取字符,可以使用哪个方法(Read)。
3.要操作文件需要使用Fextstream对象,那么我们可以通过哪些途径得到它呢?(FSO对象的CreateTextFile方法、FSO对象的OpenTextFile方法)。
4.如果要在文件中写入空行,可以使用哪些方法?(writeline和writeblanklines)。
5.我们要判断文件指针是否到行末要使用TextSteam对象的(AtEndofline)属性,而判断是否到文件末,则使用(Atendofstream)属性,想知道当前处于文件中的当前字符串所在列号使用(Column)属性,返回当前行号使用(line)属性。

ASP建站十大常用程序(第十篇计数器)

ASP 编程中 20 个非常有用的例子
1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法
< p align=”center” >< font size=”4″ face=”Arial” >< b
>
The Physical path to this virtual website is:
< /b >< /font >
< font color=”#FF0000″ size=”6″ face=”Arial” >
< %= Server.MapPath(“”)% >
< /font >< /p >
2.我如何知道使用者所用的浏览器?
答:使用the Request object方法
strBrowser=Request.ServerVariables(“HTTP_USER_AGENT”)
If Instr(strBrowser,”MSIE”) < > 0 Then
  Response.redirect(“ForMSIEOnly.htm”)
Else
  Response.redirect(“ForAll.htm”)
End If

  答:下载微软的windows script encoder,对ASP的脚本和客户端javascript、
vbscript脚本进行加密。客户端脚本加密后,只有ie5以上的版本才能执行,服务器端脚本
加密后,只有服务器上安装有script engine 5(装ie5即可)才能解释执行。

1.Asp是Active Server Pages的简称,是解释型的脚本语言环境;
2.Asp的运行需要Windows操作系统,9x下需要安装PWS;而NT/2000/XP则需要安装Internet Information Server(简称IIS);
3.Asp和JSP的脚本标签是“<%%>”,PHP的则可以设定为多种;
4.Asp的注释符号是“’”;
5.使用附加组件,可以扩展Asp的功能。
from www.knowsky.com

用ASP设计网站在线人数统计程序

3.如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff(“d”,Now,”01/01/1990″)
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998

  问题:为什么global.asa文件总是不起作用?

例子:

在浏览网页的时侯,常常可以看见一些“当前网站上的人数是XXX人”的在线人数同计。如何用ASP来做一个呢?首先,分析一下它的做法,一般来说,这些线上人数统计都是指一个时段内的访客人数统计。比如(5分钟内,10分钟内)而这个时间的长短,是由设计者设定的。

4.如何显示随机图象
< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic=”graphix/randompics/”&p&”.gif”
% >
显示
< img src=”<%20%=dpic%%20>” >

  答:只有把global.asa文件放在web发布目录某个站点的根目录下它才有效,放在发布
目录的某个子目录下不起作用。另外,也可以使用iis4的internet service manager把某个
子目录设置为站点。

HelloWorld_1.asp
<%=”Hello,world”%>

  在这个时段内同计各个不同IP的访客总数,就可以得出当前的线上人数了,但这里有一个精确问题需要解决,至于用什么办法来精确地统计,那就是各人不同的做法了,比如可以用自动提交的页面,隔一段时间读取COOKIES等等,而在ASP中,有一个更好的技巧,就是使用session对象来统计,这里介绍一下gobal.asa这个文件,这是一个很重要的一个文件,请看看它的结构。

5.如何回到先前的页面
答:< a href=”<%20%=request.serverVariables(“Http_REFERER”)% >”
>preivous page< /a >
或用图片如:< img src=”arrowback.gif” alt=”<
%=request.serverVariables(“HTTP_REFERER”)% >” >

  问题:为什么ASP文件总不解释执行?

效果:
Hello,world

<SCRIPT LANGUAGE=”VBScript” RUNAT=”Server”>

6.如何确定对方的IP地址
答:< %=Request.serverVariables(“REMOTE_ADDR)% >

  答:在iis服务器上没有给ASP文件以脚本解释的权限,所以ASP文件没有被web服务器作
为脚本代码进行解释执行,而被当成一般页面文件了。建议在web发布目录中建立一个ASP目
录,把所有ASP文件存放在此目录下,把ASP目录赋予脚本解释权限。

HelloWorld_2.asp
<%
for i=1 to 10
response.write “Hello,world”
next
%>

Sub Session_OnStart

7.如何链结到一副图片上
答:< % @Languages=vbs cript % >
< % response.expires=0
strimagename=”graphix/errors/erroriamge.gif”
response.redirect(strimagename)
% >

  问题:ASP文件中使用response.redirect(url)时导致错误“the http headers are 
already written to the client browser. any http header modifications must be 
made before writing page content”,请问如何解决?

效果:
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world

End Sub

8.强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status=”401 not Authorized”
response.end
% >

  答:此错误为http标题在写入页内容之后,写到了客户浏览器中。任何http标题的修改
必须在写入页内容之前进行,解决的方法为在ASP文件最开头加入response.buffer = 
true,在文件的结尾加入response.flush。

注意:Asp不区分大小写;变量无需定义也可使用,转换方便;语法检查很松。

Sub Session_OnEnd

9.如何传递变量从一页到另一页
答:用 HIDDEN 类型来传递变量
< % form method=”post” action=”mynextpage.asp” >
< % for each item in request.form % >
< input namee=”< %=item% >” type=”HIDDEN”
value=”< %=server.HTMLEncode(Request.form(item)) % >” >
< % next % >
< /form >

  问题:为什么session有时候会消失?

二、Asp内置对象的使用:

End Sub

10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答:由于 asp
是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你
(:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as
follows:
< % yourVar=”测试对话框”% >
< % s cript language=’javas cript’ >
alert(“< %=yourvar% >”)
< /s cript >

  答:session很像临时的cookie,只是其信息保存在服务器上(客户机上保存的是
sessionid)。session变量消失有几种可能,如:使用者的浏览器不接受cookie,因为
session依赖于cookie才能跟踪用户;session在一段时间后过期了,缺省为20分钟,如果希
望更改,可以通过设置microsoft management console的web directory→properties→
virtual directory→application settings→configuration→app options→session 
timeout选项来改变session的超时时间,也可以在ASP脚本中设定,如
session.timeout=60,可设定超时时间为60分钟。

可以使用下面的任何ASP内置对象,而不必在ASP脚本中特别声明。

sub Application_OnStard

11.有没有办法保护自己的源代码,不给人看到
答:可以去下载一个微软的Windows s cript
Encoder,它可以对asp的脚本和客户端javas cript/vbs
cript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有s
cript engine 5(装一个ie5就有了)才能执行。

  问题:怎样才能知道访问者的一些信息?

1. Request:

End Sub

12.怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句: Response.Redirect(“second.asp” &
Request.ServerVariables(“QUERY_STRING”))

  答:通过request.servervariables(″http—user—agent″)获得访问者浏览器的类
型;request.servervariables(″remote—addr″)可获得访问者的ip地址;而访问者的语
言环境可通过request.servervariables(″http—accept—language″)来获得。

定义:可用来访问从浏览器发送到服务器的请求信息,可用此对象读取已输入HTML表单的信息。

sub Application_OnEnd

13.global.asa文件总是不起作用
答:只有web目录设置为web application, global.asa才有效,并且一个web
application的根目录下 global.asa才有效。IIS4可以使用Internet Service
Manager设置application setting
怎样才能使得htm文件如同asp文件一样可以执行脚本代码?

  问题:怎样才能将query string从一个ASP文件传送到另一个ASP文件?

集:
Cookies:含有浏览器cookies的值
Form:含有HTML表单域中的值
QueryString:含有查询字符串的值
ServerVariables:含有头和环境变量中的值

End Sub</SCRIPT>

14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:Internet Sevices Manager – > 选择default web site – >右鼠键-
>菜单属性-〉主目录- > 应用程序设置(Application Setting)- >
点击按钮 “配置”- > app mapping – >点击按钮”Add” – > executable
browse选择 WINNTSYSTEM32INETSRVASP.DLL EXTENSION 输入 htm method
exclusions 输入PUT.DELETE
全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。

  答:前一个ASP文件加入下列代码:response.redirect(″second.ASP?″&
request.servervariables(″query—string″))即可。

例子:

  当有一个会话发生时(用户浏览网页,向Web服务器发出请求)那么,如果自服务器启动后第一个用户的话,就会同时发生Application_OnStard和Session_OnStart这两个事件,之后,再有别的用户发出请求的话,就只发生Session_OnStart这个事件,而session的生存期是多长,是可以设定的,Session.timeout=X(分钟)

15.如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web
Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32
component_name.dll 例如 c: emp egsvr32 AspEm

  问题:ASP中如何控制cookies?

request_url.asp
<%
‘获取用户输入,并存入变量
user_id=request.querystring(“user_id”)
user_name=request.querystring(“user_name”)

  好了,有了这个很好用的方法,我们就能准确地统计出在线人数了,而人数总计是用一个application变量来保存,当在第一个会话开始时,在Application_OnStard事件中放置一条清空计数器的语句application(“online”)=0,然后,在Session_OnStart事件中,放置一条增加在线人数的语句application(“online”)=application(“online”)+1,而在Session_OnEnd事件相应地放一条减少在线人数的语句,令计数值减一。

  答:若想写入cookies可用:response.cookies(″待写入的coookies名称″)=待写入数
据。读取cookies则使用:读取数据=request.cookies(″待读的cookies名称″)。

‘判断用户输入是否正确
if user_id=”” then
response.write “User_id is null,please check it”
response.end
end if
if user_name=”” then
response.write “User_name is null,please check it”
response.end
end if

  这样,这个文件就改为如下

  注意,写入cookies的response.cookies程序段必须放在〈html〉标记之前,且不可以
有任何的其它html代码。另外,cookies中必须使用expires设定有效期,cookies才能真正
地写入客户端硬盘中,否则只是临时的。

‘打印变量
response.write user_id&”<br>”
response.write user_name
%>

<SCRIPT LANGUAGE=”VBScript” RUNAT=”Server”>

  问题:怎样实现用ASP发送邮件?

效果:
当访问
User_id is null,please check it
当访问
my_id
j

Sub Session_OnStart

  答:用户需装上windows nt option pack的smtp service功能。实现代码如下:

思考:变量是如何在URL中传递和被Asp页面获取的?

application(“online”)=application(“online”)+1

  〈%

request_form.htm
<style type=”text/css”>
<!–
.input {background-color: #FFFFFF; border-bottom: black 1px solid;border-left: black 1px solid; border-right: black 1px solid;border-top: black 1px solid; color: #000000;font-family: Georgia; font-size: 9pt;color: midnightblue;}
a:link {color: #1B629C; text-decoration: none}
a:hover {color: #FF6600; text-decoration: underline}
a:visited {text-decoration: none}
–>
</style>

End Sub

  set mail = server.createobject(″cdonts.newmail″)

<center>
<form name=”course” action=”request_form.asp” method=”post”>
User_id:<input type=”text” name=”user_id” maxlength=”20″ class=”input”><br><br>
User_name:<input type=”text” name=”user_name” maxlength=”30″ class=”input”>
</form>
<br><br>
<a href=”javascript:document.course.submit();”> 提 交 </a>
</center>

Sub Session_OnEnd

  mail.to =″abc@xxx.com″

request_form.asp
<%
‘获取用户输入,并存入变量
user_id=request.form(“user_id”)
user_name=request.form(“user_name”)

application(“online”)=application(“online”)-1

  mail.from =″yourmail@xxx.com″

‘判断用户输入是否正确
if user_id=”” then
response.write “User_id is null,please check it”
response.end
end if
if user_name=”” then
response.write “User_name is null,please check it”
response.end
end if

End Sub

  mail.subject =″主题″

‘打印变量
response.write user_id&”<br>”
response.write user_name
%>

sub Application_OnStard

  mail.body =″e-mail内容″

注意:form的action的指向,request_form.asp和request_url.asp在源代码上的区别?

application(“online”)=0