家电维修论坛

 找回密码
 请使用中文注册

QQ登录

只需一步,快速开始

搜索
新手快速入门友情链接新手学发贴无法收到EMAIL邮件
禁发广告贴旧版论坛老用户无法登录版主申请维修联盟网站大事记
查看: 2400|回复: 0
收起左侧

使用ASP编程常见问题解答(1)

[复制链接]
发表于 2003-2-21 10:51:00 | 显示全部楼层 |阅读模式

马上登录【中国家电维修联盟论坛】获取更多更全面的信息!

您需要 登录 才可以下载或查看,没有帐号?请使用中文注册

x
  问题:如何保护自己的ASP源代码不泄露?
# y9 R, {  s5 h% ]$ N: }
! O( L4 W& z; C; y- ~& Q8 q4 y  答:下载微软的windows script encoder,对ASP的脚本和客户端javascript、vbscript脚本进行加密。客户端脚本加密后,只有ie5以上的版本才能执行,服务器端脚本加密后,只有服务器上安装有script engine 5(装ie5即可)才能解释执行。
- R; l/ l3 v7 O5 k7 z# y" V
, N! I5 i" d1 s9 [6 V! v2 ~  问题:为什么global.asa文件总是不起作用?9 [2 j; i, s$ J& k2 l# n

$ b, h* ]4 ~5 \7 Z# g1 y# p. F  V* y8 F  答:只有把global.asa文件放在web发布目录某个站点的根目录下它才有效,放在发布目录的某个子目录下不起作用。另外,也可以使用iis4的internet service manager把某个子目录设置为站点。
$ m6 J# M$ x% F
7 v6 l# [9 b  q+ h: @+ n" b  L  问题:为什么ASP文件总不解释执行?$ u0 e7 X, Y. l" ^" U, Z$ e  I* ]) C/ z
1 e3 \$ ~( p. ]5 q+ V& S
  答:在iis服务器上没有给ASP文件以脚本解释的权限,所以ASP文件没有被web服务器作为脚本代码进行解释执行,而被当成一般页面文件了。建议在web发布目录中建立一个ASP目录,把所有ASP文件存放在此目录下,把ASP目录赋予脚本解释权限。* e4 ^4 H$ b: J7 [. a1 h/ n  m
6 H# ~1 Z( p, ?0 B5 L5 l
  问题: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”,请问如何解决?
% n4 ^. N( f2 t) Z/ |" n0 m8 F
& M/ U4 j( Q7 F. i* S# E  答:此错误为http标题在写入页内容之后,写到了客户浏览器中。任何http标题的修改必须在写入页内容之前进行,解决的方法为在ASP文件最开头加入response.buffer = true,在文件的结尾加入response.flush。# p" N, `& q9 \# W9 o' p" h8 j

5 ~- v/ X" O$ c  问题:为什么session有时候会消失?
) E$ g( a$ |2 o, q  T* F9 ^% w, r- \0 e
  答: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分钟。
7 b0 k2 Z* D7 ^- P9 g2 a+ C) w9 u$ t: h* a
  问题:怎样才能知道访问者的一些信息?
- x% n0 h! y9 J0 [' E: B# G5 T8 A4 q  S6 N- _# z; ?* \5 M0 S
  答:通过request.servervariables(″http—user—agent″)获得访问者浏览器的类型;request.servervariables(″remote—addr″)可获得访问者的ip地址;而访问者的语言环境可通过request.servervariables(″http—accept—language″)来获得。
' h. I8 T& k' T, B" z) [+ i6 _0 x9 k. {9 i; {) G# E; a1 P9 P' V
  问题:怎样才能将query string从一个ASP文件传送到另一个ASP文件?& a) m& V2 _/ F# M

" H4 m( R" e$ W% S; Y$ x9 ^  答:前一个ASP文件加入下列代码:response.redirect(″second.ASP?″&request.servervariables(″query—string″))即可。: D6 N2 k+ M' w& P6 R) }

. z( {. J8 q  f0 j4 b9 t0 ]  问题:ASP中如何控制cookies?( j; s/ {3 Y9 Q

2 i. `# L% |, u9 \8 g" T* R- o  }/ H, k  答:若想写入cookies可用:response.cookies(″待写入的coookies名称″)=待写入数据。读取cookies则使用:读取数据=request.cookies(″待读的cookies名称″)。0 T! h0 J2 u( Y9 C

9 t0 a1 k$ X0 a1 Z) ~6 Z  注意,写入cookies的response.cookies程序段必须放在〈html〉标记之前,且不可以有任何的其它html代码。另外,cookies中必须使用expires设定有效期,cookies才能真正地写入客户端硬盘中,否则只是临时的。( w/ `2 K; j+ p* l8 u
, R$ Q% Q- O/ q9 K
  问题:怎样实现用ASP发送邮件?* ]) }; g  U  \. x
: U) B; ^# `/ y6 N7 K! j2 a
  答:用户需装上windows nt option pack的smtp service功能。实现代码如下:0 j; [' C! i" }$ a% h; x
- y$ X8 V7 ?5 o- l# s+ |
  〈%9 [- K8 M) [+ k- Z- c8 b! V( e
6 k$ P5 b) `4 ^
  set mail = server.createobject(″cdonts.newmail″)
' a- k$ m) p8 [+ f
5 j+ z: T$ [( u  mail.to =″abc@xxx.com″
# d* A& Q1 A' b, |# ^: _+ M
3 Z$ P7 K( V3 ~* n9 K  mail.from =″yourmail@xxx.com″
+ s' @$ C0 e2 N/ {
& c# h" D( f8 z6 G' K: m; @4 @  mail.subject =″主题″- O: X: y: c- @2 X$ |. S* s4 b

  k" X  b* Z9 o& C0 Y  mail.body =″e-mail内容″
. G8 q$ }/ f$ ]$ w% _( w& X8 q% X, E8 v7 s& |
  mail.send; Q7 m4 x  V7 `
& Q) O; |. k) g) ^
  %〉2 ~2 W+ h7 z- C) X

) N1 D7 S/ c) ~% N  问题:ASP与数据库连接一定要在服务器端设置dsn吗?
! u9 _1 v) q: _; C! k! H8 X* c9 w9 y% A
  答:不一定,ASP与服务器的数据库连接有两种方法,一种为通过dsn建立连接,另一种不用dsn建立连接。通过dsn连接数据库需要服务器的系统管理员在服务器的控制面板中的odbc中设置一个dsn。如果没有在服务器上设置dsn,只要知道数据库文件名(比如access、paradox、foxpro的数据库)或者数据源名(如sqlserver的数据库)就可以访问数据库,直接提供连接所需的参数即可。* d5 t7 e! B+ k; y& L8 l7 B4 p( o

% V8 C4 f. E7 U- i& j! Q' G  连接代码如下:
' |4 ^+ E! U( O# ]7 s( u% o2 k3 n% q
  set conn=server.createobject(″adodb.connection″)/ V+ ^3 B* a! q* X3 Z8 Z5 d

  Z$ d, Y2 r0 }6 u3 p  connpath=″dbq=″&server.mappath(″yourtable.mdb″)
( c5 b& h- z3 t6 k6 c
  B9 r3 Q# \' T( g, k- c  conn.open″driver={microsoft access driver (?.mdb)};″&connpath
- u2 v# d. d1 @9 j" r. `9 v' ]
* M5 @: H5 ?8 i  set rs=conn.execute(″select?from authors″): |0 A& r) d- U# z  c8 R; w$ o1 S
: [; {- B: u+ h. I+ S
(未完待续)
您需要登录后才可以回帖 登录 | 请使用中文注册

本版积分规则

QQ|Archiver|手机版|小黑屋|粤ICP备09021106号|大众电子网
深圳市深威志电子有限公司 版权所有 站长QQ:17158联系站长请点这里

GMT+8, 2026-2-23 13:25 , Processed in 0.705665 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表