问题:如何保护自己的asp源代码不泄露?
答:下载微软的windows script encoder,对asp的脚本和客户端javascript、vbscript脚本进行加密。客户端脚本加密后,只有ie5以上的版本才能执行,服务器端脚本加密后,只有服务器上安装有script engine 5(装ie5即可)才能解释执行。
问题:为什么global.asa文件总是不起作用?
答:只有把global.asa文件放在web发布目录某个站点的根目录下它才有效,放在发布目录的某个子目录下不起作用。另外,也可以使用iis4的inte.net service manager把某个子目录设置为站点。
问题:为什么asp文件总不解释执行?
答:在iis服务器上没有给asp文件以脚本解释的权限,所以asp文件没有被web服务器作为脚本代码进行解释执行,而被当成一般页面文件了。建议在web发布目录中建立一个asp目录,把所有asp文件存放在此目录下,把asp目录赋予脚本解释权限。
问题: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”,请问如何解决?
答:此错误为http 标题在写入页内容之后,写到了客户浏览器中。任何 http 标题的修改必须在写入页内容之前进行,解决的方法为在asp文件最开头加入response.buffer = true,在文件的结尾加入response.flush。
问题:为什么session 有时候会消失?
答: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分钟。
问题:怎样才能知道访问者的一些信息?
答:通过request.servervariables(″http—user—agent″)获得访问者浏览器的类型; request.servervariables(″remote—addr″)可获得访问者的ip地址;而访问者的语言环境可通过request.servervariables(″http—accept—language″)来获得。
问题:怎样才能将query string从一个asp文件传送到另一个asp文件?
答:前一个asp文件加入下列代码:response.redirect(″second.asp?″ & request.servervariables(″query—string″))即可。
问题:asp中如何控制cookies?
答:若想写入cookies可用:response.cookies(″待写入的coookies名称″)=待写入数据。读取cookies则使用:读取数据=request.cookies(″待读的cookies名称″)。
注意,写入cookies的response.cookies程序段必须放在〈html〉标记之前,且不可以有任何的其它html代码。另外,cookies中必须使用expires设定有效期,cookies才能真正地写入客户端硬盘中,否则只是临时的。
问题:怎样实现用asp发送邮件?
答:用户需装上windows nt option pack的smtp service功能。实现代码如下:〈%
set mail = server.createobject(″cdonts.newmail″)
mail.to = ″abc@xxx.com″
mail.from = ″yourmail@xxx.com″
mail.subject = ″主题″
mail.body = ″e-mail内容″
mail.send
%〉
问题:asp与数据库连接一定要在服务器端设置dsn吗?
答:不一定, asp与服务器的数据库连接有两种方法,一种为通过dsn建立连接,另一种不用dsn建立连接。通过dsn连接数据库需要服务器的系统管理员在服务器的控制面板中的odbc中设置一个dsn。如果没有在服务器上设置dsn,只要知道数据库文件名(比如access、paradox、foxpro的数据库)或者数据源名(如sqlserver的数据库)就可以访问数据库,直接提供连接所需的参数即可。
连接代码如下:
set conn=server.createobject(″adodb.connection″)
connpath=″dbq=″ & server.mappath(″yourtable.mdb″)
conn.open ″driver={microsoft access driver (.mdb)}; ″ & connpath
set rs=conn.execute(″select from authors″)
问题:如何从一页到另一页传递变量?
答:用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来保存变量。
〈%session(″bh″)= request.form (″bh″)%〉
用querystring保存变量。
〈a herf=″action.asp?bh=10″〉查询〈/a〉
〈%request. querystring (″bh″)%〉
问题:如何用asp实现在线人数统计?
答:在线人数是指一个时段内的访客人数统计,时间的长短是由设计者设定的。
在这个时段内,各个不同ip访问本站点的总数,就是当前的线上人数。在asp中,使用session对象来实现统计,实现代码如下:
golobal.asa文件
〈script language=″vbscript″ runat=″server″〉
sub session—onstart
application(″online″)=application(″online″)+1
end sub
sub session—onend
application(″online″)=application(″online″)-1
end sub
sub application—onstard
application(″online″)=0
end sub
sub application—onend
application(″online″)=0
end sub
〈/script〉
online.asp 文件内容
〈% tmp=application(″online″)
tmp=cstr(tmp)
dim disp(20)
dim images(20)
dbbits=len(tmp)
for i= 1 to dbbits
disp(i)=left(right(tmp,i),i-(i-1))
next
for i=dbbits to 1 step -1
images(i)=″〈img src=″&″http://xxxx.com.cn/pic″&″/″&disp(i)&″.gif〉″
response.write ″document.write(′ ″&images(i)&″ ′);″
next %〉
问题:asp程序运行的时间如何计算?
答:确定asp程序的执行时间的代码如下所示:
〈%
dim t1,t2
t1=now()
′被检测的asp代码
t2=now()
response.write ″运行这段asp代码用了″&cstr(cdbl((t2-t1)*24*60*60)) & ″秒″
%〉
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器