您当前的位置: 首页 > 网站编程 > ASP教程 > 使用ASP常见问题解答

使用ASP常见问题解答

作者:不详 来源:网络 发布时间: 2010-08-21 16:41 点击:
问题:如何保护自己的ASP源代码不泄露? 答:下载微软的WindowsScriptEncoder,对ASP的脚本和客户端JavaScript、VBScript脚本进行加密。客户端脚本加密后,只有IE5以上的版本才能执行,服务器端脚本加密后,只有服务器上安装有ScriptEngine5(装IE5即可)才能解释执行

使用ASP常见问题解答

  问题:如何保护自己的ASP源代码不泄露?
  
  答:下载微软的WindowsScriptEncoder,对ASP的脚本和客户端JavaScript、VBScript脚本进行加密。客户端脚本加密后,只有IE5以上的版本才能执行,服务器端脚本加密后,只有服务器上安装有ScriptEngine5(装IE5即可)才能解释执行。
  
  问题:为什么Global.asa文件总是不起作用?
  
  答:只有把Global.asa文件放在Web发布目录某个站点的根目录下它才有效,放在发布目录的某个子目录下不起作用。
  
  另外,也可以使用IIS4的InternetServiceManager把某个子目录设置为站点。
  
  问题:为什么ASP文件总不解释执行?
  
  答:在IIS服务器上没有给ASP文件以脚本解释的权限,所以ASP文件没有被Web服务器作为脚本代码进行解释执行,而被当成一般页面文件了。建议在Web发布目录中建立一个ASP目录,把所有ASP文件存放在此目录下,把ASP目录赋予脚本解释权限。
  
  问题:ASP文件中使用Response.Redirect(url)时导致错误“TheHTTPheadersarealreadywrittentothe
  
  clientbrowser.AnyHTTPheadermodificationsmustbemadebeforewritingpagecontent”,请问如何解决?
  
  答:此错误为HTTP标题在写入页内容之后,写到了客户浏览器中。任何HTTP标题的修改必须在写入页内容之前进行,解决的方法为在ASP文件最开头加入Response.Buffer=True,在文件的结尾加入Response.Flush。
  
  问题:为什么Session有时候会消失?
  
  答:Session很像临时的Cookie,只是其信息保存在服务器上(客户机上保存的是SessionID)。Session变量消失有几种可能,如:使用者的浏览器不接受Cookie,因为Session依靠于Cookie才能跟踪用户;Session在一段时间后过期了,缺省为20分钟,假如希望更改,可以通过设置MicrosoftManagementConsole的WebDirectory→Properties→VirtualDirectory→ApplicationSettings→Configuration→AppOptions→SessionTimeout选项来改变Session的超时时间,也可以在ASP脚本中设定,如Session.Timeout=60,可设定超时时间为60分钟。
  
  问题:怎样才能知道访问者的一些信息?
  
  答:通过Request.ServerVariables(″HTTP—USER—AGENT″)获得访问者浏览器的类型;Request.ServerVariables(″REMOTE—ADDR″)可获得访问者的IP地址;而访问者的语言环境可通过Request.ServerVariables(″HTTP—ACCEPT—LANGUAGE″)来获得。
  
  问题:怎样才能将QueryString从一个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发送邮件?
  
  答:用户需装上WindowsNTOptionpack的SMTPService功能。实现代码如下:
  
  <%
  
  Setmail=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的数据库)就可以访问数据库,直接提供连接所需的参数即可。
  
  连接代码如下:
  
  setconn=server.createobject(″adodb.connection″)
  
  connpath=″DBQ=″&server.mappath(″yourtable.mdb″)
  
  conn.Open″DRIVER={MicrosoftAccessDriver(.mdb)};″&connpath
  
  setrs=conn.execute(″selectfromauthors″)
  
  问题:如何从一页到另一页传递变量?
  
  答:用Hidden表单类型来传递变量。
  
  〈formmethod=″post″action=″mynextpage.asp″〉
  
  〈%foreachiteminrequest.form%〉
  
  〈inputnamee=″〈%=item%〉″type=″Hidden″
  
  value=″〈%=server.HTMLEncode(Request.form(item))%〉″〉
  
  〈%next%〉
  
  〈/form〉
  
  用Session来保存变量。
  
  〈%Session(″bh″)=request.form(″bh″)%〉
  
  用QueryString保存变量。
  
  〈aherf=″action.asp?bh=10″〉查询〈/a〉
  
  〈%Request.QueryString(″bh″)%〉
  
  问题:如何用ASP实现在线人数统计?
  
  答:在线人数是指一个时段内的访客人数统计,时间的长短是由设计者设定的。
  
  在这个时段内,各个不同IP访问本站点的总数,就是当前的线上人数。在ASP中,使用Session对象来实现统计,实现代码如下:
  
  Golobal.asa文件
  
  〈SCRIPTLANGUAGE=″VBScript″RUNAT=″Server″〉
  
  SubSession—OnStart
  
  application(″online″)=application(″online″)+1
  
  EndSub
  
  SubSession—OnEnd
  
  application(″online″)=application(″online″)-1
  
  EndSub
  
  subApplication—OnStard
  
  application(″online″)=0
  
  EndSub
  
  subApplication—OnEnd
  
  application(″online″)=0
  
  EndSub
  
  〈/SCRIPT〉
  
  Online.asp文件内容
  
  〈%tmp=application(″online″)
  
  tmp=Cstr(tmp)
  
  dimdisp(20)
  
  dimimages(20)
  
  dbbits=len(tmp)
  
  fori=1todbbits
  
  disp(i)=left(right(tmp,i),i-(i-1))
  
  next
  
  fori=dbbitsto1step-1
  
  images(i)=″〈imgsrc=″&″http://xxxx.com.cn/pic″&″/″&disp(i)&″.gif〉″
  
  response.write″document.write(′″&images(i)&″′);″
  
  next%〉
  
  问题:ASP程序运行的时间如何计算?
  
  答:确定ASP程序的执行时间的代码如下所示:
  
  〈%
  
  dimt1,t2
  
  t1=now()
  
  ′被检测的ASP代码
  
  t2=now()
  
  response.write″运行这段ASP代码用了″&cstr(cdbl((t2-t1)*24*60*60))&″秒″
  
  %〉

分享到:
本文"使用ASP常见问题解答"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4