使用ASP编程常见问题解答

博客转载了关于使用ASP编程常见问题解答的内容,聚焦于ASP编程领域,为相关人员提供常见问题的解答参考。
使用ASP编程常见问题解答


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

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

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

  答:只有把global.asa文件放在web发布目录某个站点的根目录下它才有效,放在发布目录的某个子目录下不起作用。另外,也可以使用iis4的internet 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))&"秒"   %〉

转载于:https://www.cnblogs.com/laoxu/archive/2005/04/28/147203.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值