使用ASP常见问题解答

原创 2000年08月31日 10:00:00
(作者:林子 2000年06月07日 14:12)


  问题:如何保护自己的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)) & ″秒″

  %〉


使用ASP常见问题解答

  问题:如何保护自己的ASP源代码不泄露?   答:下载微软的Windows Script Encoder,对ASP的脚本和客户端JavaScript、VBScript脚本进行加密。客户端脚本加密后...
  • AppleBBS
  • AppleBBS
  • 2004年12月21日 14:44
  • 1107

使用ASP常见问题解答

2000年08月31日 10:00:00 (作者:林子 2000年06月07日 14:12)  问题:如何保护自己的ASP源代码不泄露?   答:下载微软的Windows Script Enc...
  • softart
  • softart
  • 2007年10月27日 06:56
  • 243

SuperMap iMobile for Android常见问题解答集锦(十三)

作者:皇皇 问:SuperMap iMobile for Android中是否支持实时GPS定位,怎么实现? 答:可以支持;通过LocationManagePlugin管理插件类,开启GPS设备,并...
  • supermapsupport
  • supermapsupport
  • 2017年03月02日 10:54
  • 814

EXCEL常见问题五十问题解答

001。用命令按扭打印一个sheet1中B2:M30区域中的内容?我想在Sheet2中制件一个命令按扭, 打印表Sheet1中的[B2:M30] 区域中的内容?解答:可以将打印区域设为b2:m30,然...
  • songkexin
  • songkexin
  • 2007年01月25日 08:07
  • 10464

常见RAID模式总结

RAID:Redundant Array Of Independent Disk,即独立磁盘冗余阵列,有两层含义: 1、磁盘是独立的,整个阵列由单独的一块块磁盘构成。2、阵列具有数据冗余性,在一定程...
  • funnyrand
  • funnyrand
  • 2011年11月27日 10:57
  • 750

【备忘】今天用过的一些vi指令

:%s/pattern//g  删除符合模式的行:m,nd  删除多行Ctrl+F 向下翻页Ctrl+B 向上翻页 ...
  • abcdef0966
  • abcdef0966
  • 2011年06月03日 19:25
  • 344

外国asp空间常见问题解答

现在国内的免费asp空间越来越少,即使是收费的,也有备案的麻烦。所以国外的空间就成了很多人的选择,但是选择国外的空间,往往会有数据库连接、乱码和时差的问题。这里,我参考各位高人的文章,在本地用虚拟机运...
  • BuWood
  • BuWood
  • 2007年10月03日 14:08
  • 2545

Forth 常见问题解答

Forth 常见问题解答 本文译自 comp.lang.forth Frequently Asked Questions (1/6): General/Misc 原文整理 M. Anton Ertl,...
  • wxj729
  • wxj729
  • 2005年03月07日 15:52
  • 2881

VC++中一些常见问题的解决方法

(转)VC++中一些常见问题的解决方法 (1)为什么某个类突然在工作区间里面突然看不见了? 只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLAS...
  • chidy
  • chidy
  • 2013年02月26日 13:36
  • 963

使用LNMP常见问题解答

转载自:https://wiki.vpsmm.com/lnmp-faq/ 一、LNMP的安装 ##先要下载,并根据不同系统进行安装: wget -c http://soft.vpser...
  • SLsuifengyaobai
  • SLsuifengyaobai
  • 2017年02月20日 16:25
  • 209
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用ASP常见问题解答
举报原因:
原因补充:

(最多只允许输入30个字)