随笔-75  评论-74  文章-35  trackbacks-1
ASP六大对象介绍

绝对经典


 

ASP六大对象介绍

一、Application对象

  Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。
Application的属性:
  方法如下:
  Application对象没有内置的属性,但是我们可以自行创建其属性。
  <% Application("属性名")=值 %>
  其实大部分Application变量都 存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Contents集合中添加了一项。下面两个脚本是等效的:
  <% Application("greeting")="hello!" %> 或 <% Application.contents("greeting")="hello!"由于Application变量存在集合里,所以如果想要全部显示,其方法我们已经多次使用,例如For Each循环。  
<%
For Each item IN Application.Contents
  Response.write("<br>"&item&Application.Contents(item))
next
%>
Application的方法:
  Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证同一时刻只能一个用户对Application操作。Unlock则用于取消Lock方法的限制。如:
<%
Application.Lock
Application("visitor_num")=Application("visitor_num")+1
Application.Unlock
%>
Application的事件:
1、Application_OnStart()
  当事件应用程序启动时触发。
2、Application_OnEnd()
  此事件应用程序结束时触发。
  这两个事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。例如:
Sub Application_OnStart
    Application("tt18_ConnectionString") = "driver={SQL     
                    Server};server=jeff;uid=sa;pwd=;database=test"
End Sub
  一个数组能够被定义成Application对象,不过这个数组只能作为一个对象保存,而不能用Application(0)取出其值。可以定义一个临时数组实现这种功能。如:
<%
dim Array()
Array=Application("array")
for i = 0 to ubound(array)
  Response.write Array(i)
next i
%>
  同样要修改这个Application对象也可以定义一个临时数组,把Application对象赋给数组,然后修改这个数组的元素,最后把数组赋回Application对象。如:
<%
dim Array()
Array=Application("array")
Array(0)="jeff"
Array(1)="zhu"
Application.lock
Application("array")=Array
Application.unlock
%>


二、ObjectContext对象

该对象用于控制Active Server Pages的事务处理。事务处理由Microsoft Transaction Server (MTS)管理。

事件

ObjectContext.OnTransactionAbort

由放弃的事务处理事件激发,在脚本完成处理后发生。

ObjectContext.OnTransactionCommit

由成功的事务处理事件激发,在脚本完成处理后发生。

方法

ObjectContext.SetAbort

显式的放弃一次事务处理。

ObjectContext.SetComplete

覆盖前面任何调用ObjectContext.SetAbort方法的调用。 


三、Request对象
 
Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息。

集合

Request.ClientCertificate(key[SubField])

所有客户证书的信息的集合。对于Key,该集合具有如下的关键字:

Subject
证书的主题。包含所有关于证书收据的信息。能和所有的子域后缀一起使用。

Issuer
证书的发行人。包含所有关于证书验证的信息。除了CN外,能和所有的子域后缀一起使用。

VadidFrom
证书发行的日期。使用VBScript格式。

ValidUntil
该证书不在有效的时间。

SerialNumber
包含该证书的序列号。

Certificate
包含整个证书内容的二进制流,使用ASN.1格式。


对于SubField,Subject和Issuer关键字可以具有如下的子域后缀:(比如:SubjectOU或IssuerL)

C
起源国家。

O
公司或组织名称。

OU
组织单元。

CN
用户的常规名称。

L
局部。

S
州(或省)。

T
个人或公司的标题。

GN
给定名称。

I
初始。


当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#INCLUDE导向包含在你的Active Server Page里时,下面两个标志可以使用:

ceCertPresent
指明客户证书是否存在,其值为TRUE或FALSE。

ceUnrecongnizedIssure
指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE。


Request.Cookies(Cookie[(key).Attribute])

Cookie的集合。允许获得浏览器的Cookie。Cookie指明返回那一个Cookie。Key用于从Cookie字典中返回具有某一关键字的Cookie值。对于Attribute,你能使用属性HasKeys来确定某一Cookie是否具有子关键字。HasKeys的值为TRUE或FALSE。

Request.Form(Parameter)[(Index).Count]

填写在HTML的表单中所有的数据的集合。Parameter是在HTML表单中某一元素的名称。当某一参数具有不止一个值(比如,当在<SELECT>中使用MULTIPLE属性时)时,使用Index。当某一参数具有多值时,Count指明多值个数。

Request.QueryString(Varible)[(Index).Count]

查询字符串的所有值的集合。Varible是在查询字符串某一变量的名称。当某一变量具有多于一个值时,使用Index。当某一参数具有多值时,Count指明值的个数。

Request.ServerVaribles(Server Environment Variable)

环境变量的集合。允许读取HTTP头。你可以通过使用HTTP_前缀来读取任何头信息。比如,HTTP_USER_AGENT接受客户代理HTTP头(浏览器类型)。除此外,你可以使用下表所示的变量获得任何环境信息。

ALL_HTTP
客户端发送的所有HTTP标头,他的结果都有前缀HTTP_

ALL_RAW
客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_

APPL_MD_PATH
应用程序的元数据库路径。

APPL_PHYSICAL_PATH
与应用程序元数据库路径相应的物理路径。

AUTH_PASSWORD
当使用基本验证模式时,客户在密码对话框中输入的密码。

AUTH_TYPE
这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。

AUTH_USER
代验证的用户名。

CERT_COOKIE
唯一的客户证书ID号。

CERT_FLAG
客户证书标志,如有客户端证书,则bit0为0。如果客户端证书验证无效,bit1被设置为1。

CERT_ISSUER
用户证书中的发行者字段。

CERT_KEYSIZE
安全套接字层连接关键字的位数,如128。

CERT_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。

CERT_SERIALNUMBER
客户证书的序列号字段。

CERT_SERVER_ISSUER
服务器证书的发行者字段

CERT_SERVER_SUBJECT
服务器证书的主题字段。

CERT_SUBJECT
客户端证书的主题字段。

CONTENT_LENGTH
客户端发出内容的长度。

CONTENT_TYPE
客户发送的form内容或HTTP PUT的数据类型。

GATEWAY_INTERFACE
服务器使用的网关界面。

HTTPS
如果请求穿过安全通道(SSL),则返回ON。如果请求来自非安全通道,则返回OFF。

HTTPS_KEYSIZE
安全套接字层连接关键字的位数,如128。

HTTPS_SECRETKEYSIZE
服务器验证私人关键字的位数。如1024。

HTTPS_SERVER_ISSUER
服务器证书的发行者字段。

HTTPS_SERVER_SUBJECT
服务器证书的主题字段。

INSTANCE_ID
IIS实例的ID号。

INSTANCE_META_PATH
响应请求的IIS实例的元数据库路径。

LOCAL_ADDR
返回接受请求的服务器地址。

LOGON_USER
用户登录Windows NT的帐号

PATH_INFO
客户端提供的路径信息。

PATH_TRANSLATED
通过由虚拟至物理的映射后得到的路径。

QUERY_STRING
查询字符串内容。

REMOTE_ADDR
发出请求的远程主机的IP地址。

REMOTE_HOST
发出请求的远程主机名称。

REQUEST_METHOD
提出请求的方法。比如GET、HEAD、POST等等。

SCRIPT_NAME
执行脚本的名称。

SERVER_NAME
服务器的主机名、DNS地址或IP地址。

SERVER_PORT
接受请求的服务器端口号。

SERVER_PORT_SECURE
如果接受请求的服务器端口为安全端口时,则为1,否则为0。

SERVER_PROTOCOL
服务器使用的协议的名称和版本。

SERVER_SOFTWARE
应答请求并运行网关的服务器软件的名称和版本。

URL
提供URL的基本部分。


 

方法

Request.BinaryRead(Count)

接收一个HTML表单的未经过处理的内容。当调用此方法时,Count指明要接收多少字节。在调用此方法后,Count指明实际上接收到多少个字节。

属性

Request.TotalBytes

查询体的长度,以字节为单位


四、Response对象

  Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收、发送数据的对象,这也是实现动态的基础。下面介绍它常用的属性和方法。

 

1、Buffer属性  
  该属性用于指定页面输出时是否要用到缓冲区,默认值为False。当它为True时,直到整个Active Server Page执行结束后才会将结果输出到浏览器上。如:
<%Response.Buffer=True%>
<html>
<Head>
<title>Buffer示例</title>
</head>
<body>
<%
  for i=1 to 500
    response.write(i & "<br>")
  next
%>
</body>
</html>
  这页执行时,整个主页的所有内容会同时显示在浏览器上,这个主页会存在缓存区中直到脚本执行结束。

 

2、Expires属性
  该属性用于设置浏览器缓存页面的时间长度(单位为分),必须在服务器端刷新。通过如下设置:
<%Response.Expires=0%>
  通过在ASP文件中加入这一行代码,要求每次请求是刷新页面,因为Response一收到页面就会过期。

 

3、Write方法
  该方法把数据发送到客户端浏览器,如:  
<%Response.write "Hello,world!"%>

 

4、Redirect方法
  该方法使浏览器可以重新定位到另一个URL上,这样,当客户发出Web请求时,客户端的浏览器类型已经确定,客户被重新定位到相应的页面。如:
<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<form aciton="formjump.asp" method="post">
  <select name="wheretogo">
    <option selected value="fun">Fun</option>
    <option value="news">News</option>
    <option value="sample">Sample</option>
  </select>
<input type=submit name="jump" value="Jump">
</form>
</body>
</html>
  以上是提交的表单,下面是处理表单的文件formjump.asp:
<%response.buff=true%>
<html>
<head>
<title>Redirect示例</title>
</head>
<body>
<%
thisurl="http://www.tinyu.com/";
where=Request.form("wheretogo")
Select Case where
  case "fun"
    response.redirect thisurl & "/fun/default.asp"
  case "news"
    response.redirect thisurl & "/news/default.asp"
  case "sample"
    response.redirect thisurl & "/sample/default.asp"
End Select
%>
</body>
<html>
  这个例子当用户选择了以后,按"Jump"按钮提交表单,服务器接到申请后调用formjump.asp判断后定位到相应的URL。不过这里有一点要注意,HTTP标题已经写入到客户浏览器,任何HTTP标题的修改必须在写入页内容之前,遇到这种问题时,可以如下做:
在文件的开始<@ Language=..>后写:   
  Response.Buffer=True
在结尾定:
  Response.Flush
  这里Flush是Response的一个方法,它必须是Buffer属性设置为True时才能使用,否则会产生一个运行模式错误。另外一个Clear方法也是用于清除被缓存的页面,同样要Buffer属性设置为True时才能使用。

 

5、End方法
  该方法用于告知Active Server当遇到该方法时停止处理ASP文件。如果Response对象的Buffer属性设置为True,这时End方法即把缓存中的内容发送到客户并清除冲区。所以要取消所有向客户的输出民,可以先清除缓冲区,然后利用End方法。如:
<%
Response.buffer=true
On error resume next
Err.clear
if Err.number<>0 then
  Response.Clear
  Response.End
end if
%>


五、Server 对象:

Server 对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。

语法

Server.property|method

属性

ScriptTimeout:
ScriptTimeout 属性指定脚本在结束前最大可运行多长时间。 当处理服务器组件时,超时限制将不再生效。

语法  Server.ScriptTimeout = NumSeconds

参数  NumSeconds
指定脚本在被服务器结束前最大可运行的秒数。默认值为 90 秒。

注释
通过使用元数据库中的AspScriptTimeout属性可以为 Web 服务或 Web 服务器设置缺省的ScriptTimeout值。ScriptTimeout属性不能设置为小于在元数据库中指定的值。例如,如果NumSeconds设置为10,而元数据库设置包含了默认值90秒,则脚本在90秒后超时。但如果NumSeconds设置为100,则脚本在100秒后超时。

关于使用元数据库的详细信息,参阅 关于元数据库。

示例    以下示例中,如果服务器处理脚本超过 100 秒,将使之超时。
<% Server.ScriptTimeout = 100 %>
以下示例获取 ScriptTimeout 属性当前值,并将其存储在变量 TimeOut 中。
<% TimeOut = Server.ScriptTimeout %>

方法

CreateObject
CreateObject 方法创建服务器组件的实例。如果该组件执行了 OnStartPage 和 OnEndPage 方法,则此时就会调用 OnStartPage 方法。有关服务器组件的详细信息,请参阅 可安装的 ASP 组件 。

语法  Server.CreateObject( progID )

参数 progID 指定要创建的对象的类型。progID 的格式为 [Vendor.] component[.Version]。

注释 默认情况下,由 Server.CreateObject 方法创建的对象具有页作用域。这就是说,再当前 ASP 页处理完成之后,服务器将自动破坏这些对象。要创建有会话或应用程序作用域的对象,可以使用 <OBJECT> 标记并设置 SESSION 或 APPLICATION 的 SCOPE 属性,也可以在对话及应用程序变量中存储该对象。
例如,在如下所示的脚本中,当 Session 对象被破坏,即当对话超时时或 Abandon 方法被调用时,存储在会话变量中的对象也将被破坏。
<% Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%>
可以通过将变量设置为 Nothing 或新的值来破坏对象,如下所示。第一个例子释放 ad 对象,第二个例子用字串代替 ad 。
<% Session ("ad") = Nothing %>
<% Session ("ad") = " Other Valum " %>
不能创建与内建对象同名的对象实例。 例如,下列脚本将返回错误。
<% Set Response = Server.CreateObject("Response") %>

示例  <% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>
上面的例子创建一个名为 MyAd 的 MSWC.AdRotator 服务器组件,MSWC.AdRotator 组件可用于在 Web 页上的自动轮换广告。
关于服务器组件的详细信息, 请参阅 Creating Components for ASP.

HTMLEncode  HTMLEncode方法对指定的字符串应用 HTML 编码。

语法    Server.HTMLEncode( string )

参数    string 指定要编码的字符串。

示例脚本    <%= Server.HTMLEncode("The paragraph tag: <P>") %>

输出    The paragraph tag: <P>

注意 以上输出将被 Web 浏览器显示为The paragraph tag: <P>如果查看一下源文件或以文本方式打开一个 Web 页,您就可以看到已编码的 HTML。


MapPath
MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。

语法
Server.MapPath( Path )

参数
Path
指定要映射物理目录的相对或虚拟路径。若 Path 以一个正斜杠 (/) 或反斜杠 (\) 开始,则 MapPath 方法返回路径时将 Path 视为完整的虚拟路径。若 Path 不是以斜杠开始,则 MapPath 方法返回同 .asp 文件中已有的路径相对的路径。
注释
MapPath 方法不支持相对路径语法 (.) 或 (..)。例如,下列相对路径 ../MyDir/MyFile.txt 返回一个错误。

MapPath 方法不检查返回的路径是否正确或在服务器上是否存在。

因为 MapPath 方法只映射路径而不管指定的目录是否存在,所以,您可以先用 MapPath 方法映射物理目录结构的路径,然后将其传递给在服务器上创建指定目录或文件的组件。

示例
对于下列示例,文件data.txt和包含下列脚本的test.asp文件都位于目录C:\Inetpub\Wwwroot\Script下。C:\Inetpub\Wwwroot目录被设置为服务器的宿主目录。

下列示例使用服务器变量 PATH_INFO 映射当前文件的物理路径。脚本
<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>

输出
c:\inetpub\wwwroot\script\test.asp<BR>

由于下列示例中的路径参数不是以斜杠字符开始的,所以它们被相对映射到当前目录,此处是 C:\Inetpub\Wwwroot\Script。脚本
<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>

输出
c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script\script\data.txt<BR>

接下来的两个示例使用斜杠字符指定返回的路径应被视为在服务器的完整虚拟路径。脚本
<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("\script")%><BR>

输出
c:\inetpub\script\data.txt<BR>
c:\inetpub\script<BR>

下列示例演示如何使用正斜杠 (/) 或反斜杠 (\) 返回宿主目录的物理路径。脚本
<%= server.mappath("/")%><BR>
<%= server.mappath("\")%><BR>

输出
c:\inetpub\wwwroot<BR>
c:\inetpub\wwwroot<BR>
 

URLEncode
URLEncode 方法将 URL 编码规则,包括转义字符,应用到指定的字符串。

语法
Server.URLEncode( string )
参数
String 指定要编码的字符串。
示例
脚本 <%Response.Write(Server.URLEncode("http://www.tinyu.com";)) %>

输出 http%3A%2F%2Fwww%2Etinyu%2Ecom

六、Session对象

  Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息。

 

1、SessionID属性
  该属性返回当前会话的唯一标志,为每一个Session分配不同的编号。
  我曾在开发过程中就遇到对用户的控制问题。它要实现的功能就是,针对某个网站的一个模块,当一个会员登录后正在看此模块时,另一个人用同样的会员名登录,就不能浏览这个模块。也就是说一个会员名同时只能一个人浏览此模块。我通过用会员名(假设为UserID,唯一)和SessionID来实现了控制。当会员登录时,给这个会员一个Session记录登录状态如:Session("Status")="Logged",同时把这个会员的Session.SessionID写入数据库。当他要浏览此模块时,先判断其是否登录,若已经登录再判断它的SessionID是否与数据库记录的相同,如果不同则不能访问。这样,当另一个用户用相同的会员名登录时,那么数据库中记录的就是新的SessionID,前者访问此模块时就不能通过检查。这就实现了一个会员名同时只能一个人浏览某个模块。这个功能在一些收费网站有很有特别作用,它防止了一个会员名给多个人浏览的问题,为公司保障了利益。

 

2、TimeOut属性
  该属性用来定义用户Session对象的时限。如果用户在规定的时间内没有刷新网页,则Session对象就会终止。一般默认为20分钟。  

 

3、Abandon方法
  该方法是Session对象的唯一方法,可以清除Session对象,用来消除用户的Session对象并释放其所占的资源。如: <% Session.Abandon %>
4、Session_OnStart和Session_OnEnd事件
  和Application一样,当对象的例程每一次启动时触发Session_OnStart事件,然后运行Session_Onstart事件的处理过程。也就是说,当服务器接收到应用程序中的URL的HTTP请求时,触发此事件,并建立一个Session对象。同理,这个事件也必须定在Global.asa文件中。
  当调用Session.Abandon方法时或者在TimeOut的时间内没有刷新,这会触发Session_OnEnd事件,然后执行里面的脚本。Session变量与特定的用户相联系,针对某一个用户赋值的Session变量是和其他用户的Session变量完全独立的,不会存在相互影响。
Session应用一列:
  与Application一样,一个被定义为Session类型的数组只能将整个数组作为一个对象,用户不能直接改变Session数组中某个元素的值。为了创建一个Session数组,需先定义一个普通的数组,并对它的每一个元素赋初值,最后把它定义为一个Session数组。如:
<%
dim array()
array=array("李","明","男")
Session("info")=array
Response.write Session("info")(0) &"-"
Response.write Session("info")(1) &"-"
Response.write Session("info")(2) &"<br>"
%>
<hr>
<%
array(0)="天"
array(1)="宇"
array(2)="男"
Session("info")=array
Response.write Session("info")(0) & "-"
Response.write Session("info")(1) & "-"
Response.write Session("info")(2) & "<br>"
%>

- 作者: 午夜乞讨 2005年03月22日, 星期二 20:25  回复(0) |  引用(0)加入博采

ASP中页面限权访问的几种方法
在设计网页时,经常遇到某些页面需限权访问的情况。比如,一个公司的某些产品只让某一或某些供应商或客户浏览。那么,我们如何实现这一功能呢?本文,笔者将向读者介绍几种限制客户访问权限的方法。
 

在设计网页时,经常遇到某些页面需限权访问的情况。比如,一个公司的某些产品只让某一或某些供应商或客户浏览。那么,我们如何实现这一功能呢?本文,笔者将向读者介绍几种限制客户访问权限的方法。

  通常,我们在设计过程中会面临三种情况:某一页面只让某一用户浏览、某一页面只让某些用户浏览和某些页面只让某些用户浏览。第一种情况很简单,笔者不再叙述,下文将详细介绍后两种情况的设计方法。

一、某一页面只让某些用户浏览
  将这些客户的信息保存在数据库中,若能在数据库中检索到客户输入的姓名和密码就允许访问该页面。
  Protect.asp文件 ′需限权访问的页面

  〈html〉〈head〉〈title〉赛迪主页〈/title〉〈/head〉〈body bgcolor="#00FFFF"〉

  ′此处可输入该页面的其它内容

  〈form action="Protect.asp" method="post"〉

  请输入姓名:

  〈input type="text" name="text"〉

  请输入密码:〈input type="password" size="20" name="password"〉

  〈input type="submit" name="B1" value="查询"〉〈/p〉〈/form〉

  〈%set conn=server.createobject("adodb.connection")

  conn.open "asptest"

  ′asptest是存放客户信息的表单permission所在的数据库的名字

  sql1="select  from permission where xm='"&&request.form("text") && "' and mima='"&&request.form("password")&&"'"

  set rs=conn.execute(sql1)%〉

  ′如果数据库中存在客户输入的姓名和密码,就显示页面product.asp的超级链接

  〈% if not rs.eof then%〉〈a href="product.asp"〉本公司的产品〈/a〉

  〈%end if%〉〈/body〉〈/html〉

二、某些页面只让某些用户浏览
  我们可以设计一登录页面register.asp,如果客户没有登录,在进入每个需限权访问的页面时强制客户先访问页面register.asp实现登录。成功登录之后自动返回到刚才要访问的页面。我们可用cookies和session两种方法来实现。

  1.用cookies实现

  如果客户已经登录过,就把登录的信息记录在客户端的cookies中,之后客户就可直接浏览其它限权访问的页面。

  register.asp

  〈% if request.form("b1")="提交" then

  set conn=server.createobject("adodb.connection")

  conn.open "asptest"

  sql1="select * from permi
 

- 作者: 午夜乞讨 2005年03月22日, 星期二 20:20  回复(0) |  引用(0)加入博采

ASP(vbs)函数集锦!
ASP(vbs)函数集锦!不错的
FUNCTION: 返回一个数组
  SYNTAX: Array(list)
  ARGUMENTS: 字符,数字均可
  EXAMPLE: <%
  Dim myArray()
  For i = 1 to 7
  Redim Preserve myArray(i)
  myArray(i) = WeekdayName(i)
  Next
  %[/IMG]
  RESULT: 建立了一个包含7个元素的数组myArray
  myArray("Sunday","Monday", ... ... "Saturday")

CInt()
  FUNCTION: 将一个表达式转化为数字类型
  SYNTAX: CInt(expression)
  ARGUMENTS: 任何有效的字符均可
  EXAMPLE: <%
  f = "234"
  response.write cINT(f) + 2
  %[/IMG]
  RESULT: 236
  转化字符"234"为数字"234",如果字符串为空,则返回0值

CreateObject()
  FUNCTION: 建立和返回一个已注册的ACTIVEX组件的实例。
  SYNTAX: CreateObject(objName)
  ARGUMENTS: objName 是任何一个有效、已注册的ACTIVEX组件的名字.
  EXAMPLE: <%
  Set con = Server.CreateObject("ADODB.Connection")
  %[/IMG]
  RESULT:

CStr()
  FUNCTION: 转化一个表达式为字?
  SYNTAX: CStr(expression)
  ARGUMENTS: expression 是任何有效的表达式。
  EXAMPLE: <%
  s = 3 + 2
  response.write "The result is: " & cStr(s)
  %[/IMG]
  RESULT: 转化数字"5"为字符"5"。

Date()
  FUNCTION: 返回当前系统日期.
  SYNTAX: Date()
  ARGUMENTS: None.
  EXAMPLE: <%=Date%[/IMG]
  RESULT: 8/4/99

DateAdd()
  FUNCTION: 返回一个被改变了的日期。
  SYNTAX: DateAdd(timeinterval,number,date)
  ARGUMENTS: timeinterval is the time interval to add; number is amount of time intervals to add; and date is the starting date.
  EXAMPLE: <%
  currentDate = #8/4/99#
  newDate = DateAdd("m",3,currentDate)
  response.write newDate
  %[/IMG]

  <%
  currentDate = #12:34:45 PM#
  newDate = DateAdd("h",3,currentDate)
  response.write newDate
  %[/IMG]
  RESULT: 11/4/99
  3:34:45 PM

  "m" = "month";
  "d" = "day";

  If currentDate is in time format then,
  "h" = "hour";
  "s" = "second";

DateDiff()
  FUNCTION: 返回两个日期之间的差值 。
  SYNTAX: DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear[/IMG][/IMG])
  ARGUMENTS: timeinterval 表示相隔时间的类型,如"M"表示"月"。
  EXAMPLE: <%
  fromDate = #8/4/99#
  toDate = #1/1/2000#
  response.write "There are " & 
_
  DateDiff("d",fromDate,toDate) & _
  " days to millenium from 8/4/99."
  %[/IMG]
  RESULT: 从8/4/99 到2000年还有 150 天.

Day()
  FUNCTION: 返回一个月的第几日 .
  SYNTAX: Day(date)
  ARGUMENTS: date 是任何有效的日期。
  EXAMPLE: <%=Day(#8/4/99#)%[/IMG]
  RESULT: 4

FormatCurrency()
  FUNCTION: 返回表达式,此表达式已被格式化为货币值
  SYNTAX: FormatCurrency(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit[/IMG][/IMG][/IMG][/IMG])
  ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是
计算机的区域设置;   LeadingDigit 三态常数,指示是否显示小数值小数点前面的零。
  EXAMPLE: <%=FormatCurrency(34.3456)%[/IMG]
  RESULT: $34.35

FormatDateTime()
  FUNCTION: 返回表达式,此表达式已被格式化为日期或时间
  SYNTAX: FormatDateTime(Date, [, NamedFormat[/IMG])
  ARGUMENTS: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate.
  EXAMPLE: <%=FormatDateTime("08/4/99", vbLongDate)%[/IMG]
  RESULT: Wednesday, August 04, 1999

FormatNumber()
  FUNCTION: 返回表达式,此表达式已被格式化为数值.
  SYNTAX: FormatNumber(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit[/IMG][/IMG][/IMG][/IMG])
  ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是
计算机的区域设置。; LeadingDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; Paren 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; GroupDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。.
  EXAMPLE: <%=FormatNumber(45.324567, 3)%[/IMG]
  RESULT: 45.325

FormatPercent()
  FUNCTION: 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 (%)
  SYNTAX: FormatPercent(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit[/IMG][/IMG][/IMG][/IMG])
  ARGUMENTS: 同上.
  EXAMPLE: <%=FormatPercent(0.45267, 3)%[/IMG]
  RESULT: 45.267%

Hour()
  FUNCTION: 以24时返回小时数.
  SYNTAX: Hour(time)
  ARGUMENTS:
  EXAMPLE: <%=Hour(#4:45:34 PM#)%[/IMG]
  RESULT: 16
  (Hour has been converted to 24-hour system)

Instr()
  FUNCTION: 返回字符或字符串在另一个字符串中第一次出现的位置.
  SYNTAX: Instr([start, [/IMG] strToBeSearched, strSearchFor [, compare[/IMG])
  ARGUMENTS: Start为搜索的起始值,strToBeSearched接受搜索的字符串 strSearchFor要搜索的字符compare 比较方式(详细见ASP常数)
  EXAMPLE: <%
  strText = "This is a test!!"
  pos = Instr(strText, "a")
  response.write pos
  %[/IMG]
  RESULT: 9

InstrRev()
  FUNCTION: 同上,只是从字符串的最后一个搜索起
  SYNTAX: InstrRev([start, [/IMG] strToBeSearched, strSearchFor [, compare[/IMG])
  ARGUMENTS: 同上.
  EXAMPLE: <%
  strText = "This is a test!!"
  pos = InstrRev(strText, "s")
  response.write pos
  %[/IMG]
  RESULT: 13


Int()
  FUNCTION: 返回数值类型,不四舍五入。
  SYNTAX: Int(number)
  ARGUMENTS:
  EXAMPLE: <%=INT(32.89)%[/IMG]
  RESULT: 32

IsArray()
  FUNCTION: 判断一对象是否为数组,返回布尔值 .
  SYNTAX: IsArray(name)
  ARGUMENTS:
  EXAMPLE: <%
  strTest = "Test!"
  response.write IsArray(strTest)
  %[/IMG]
  RESULT: False

IsDate()
  FUNCTION: 判断一对象是否为日期,返回布尔值
  SYNTAX: IsDate(expression)
  ARGUMENTS: expression is any valid expression.
  EXAMPLE: <%
  strTest = "8/4/99"
  response.write IsDate(strTest)
  %[/IMG]
  RESULT: True

IsEmpty()
  FUNCTION: 判断一对象是否初始化,返回布尔值.
  SYNTAX: IsEmpty(expression)
  ARGUMENTS:
  EXAMPLE: <%
  Dim i
  response.write IsEmpty(i)
  %[/IMG]
  RESULT: True

IsNull()
  FUNCTION: 判断一对象是否为空,返回布尔值.
  SYNTAX: IsNull(expression)
  ARGUMENTS:
  EXAMPLE: <%
  Dim i
  response.write IsNull(i)
  %[/IMG]
  RESULT: False
  
  IsNumeric()
  FUNCTION: 判断一对象是否为数字,返回布尔值.
  SYNTAX: IsNumeric(expression)
  ARGUMENTS:
  EXAMPLE: <%
  i = "345"
  response.write IsNumeric(i)
  %[/IMG]
  RESULT: True
  就算数字加了引号,ASP还是认为它是数字。

IsObject()
  FUNCTION: 判断一对象是否为对象,返回布尔值.
  SYNTAX: IsObject(expression)
  ARGUMENTS:
  EXAMPLE: <%
  Set con = Server.CreateObject("ADODB.Connection")
  response.write IsObject(con)
  %[/IMG]
  RESULT: True
LBound()
  FUNCTION: 返回指定数组维的最小可用下标.
  SYNTAX: Lbound(arrayname [, dimension[/IMG])
  ARGUMENTS: dimension 指明要返回哪一维下界的整数。使用 1 表示第一维,2 表示第二维,以此类  推。如果省略 dimension 参数,默认值为 1.
  EXAMPLE: <%
  i = Array("Monday","Tuesday","Wednesday")
  response.write LBound(i)
  %[/IMG]
  RESULT: 0

LCase()
  FUNCTION: 返回字符串的小写形式
  SYNTAX: Lcase(string)
  ARGUMENTS: string is any valid string expression.
  EXAMPLE: <%
  strTest = "This is a test!"
  response.write LCase(strTest)
  %[/IMG]
  RESULT: this is a test!

Left()
  FUNCTION: 返回字符串左边第length个字符以前的字符(含第length个字符).
  SYNTAX: Left(string, length)
  ARGUMENTS:
  EXAMPLE: <%
  strTest = "This is a test!"
  response.write Left(strTest, 3)
  %[/IMG]
  RESULT: Thi

Len()
  FUNCTION: 返回字符串的长度.
  SYNTAX: Len(string | varName)
  ARGUMENTS:
  EXAMPLE: <%
  strTest = "This is a test!"
  response.write Len(strTest)
  %[/IMG]
  RESULT: 15

LTrim()
  FUNCTION: 去掉字符串左边的空格.
  SYNTAX: LTrim(string)
  ARGUMENTS:
  EXAMPLE: <%
  strTest = " This is a test!"
  response.write LTrim(strTest)
  %[/IMG]
  RESULT: This is a test!

Mid()
  FUNCTION: 返回特定长度的字符串(从start开始,长度为length).
  SYNTAX: Mid(string, start [, length[/IMG])
  ARGUMENTS:
  EXAMPLE: <%
  strTest = "This is a test! Today is Monday."
  response.write Mid(strTest, 17, 5)
  %[/IMG]
  RESULT: Today

Minute()
  FUNCTION: 返回时间的分钏.
  SYNTAX: Minute(time)
  ARGUMENTS:
  EXAMPLE: <%=Minute(#12:45:32 PM#)%[/IMG]
  RESULT: 45

Month()
  FUNCTION: 返回日期.
  SYNTAX: Month(date)
  ARGUMENTS: date is any valid date expression.
  EXAMPLE: <%=Month(#08/04/99#)%[/IMG]
  RESULT: 8

MonthName()
  FUNCTION: Returns a string identifying the specified month.
  SYNTAX: MonthName(month, [, Abb[/IMG])
  ARGUMENTS: month is the numeric representation for a given month; Abb (optional) is a boolean value used to display month abbreviation. True will display the abbreviated month name and False (default) will not show the abbreviation.
  EXAMPLE: <%=MonthName(Month(#08/04/99#))%[/IMG]
  RESULT: August

Now()
  FUNCTION: Returns the current system date and time.
  SYNTAX: Now()
  ARGUMENTS: None
  EXAMPLE: <%=Now%[/IMG]
  RESULT: 8/4/99 9:30:16 AM

Replace()
  FUNCTION: Returns a string in which a specified sub-string has been replaced with another substring a specified number of times.
  SYNTAX: Replace(strToBeSearched, strSearchFor, strReplaceWith [, start [, count [, compare[/IMG][/IMG][/IMG])
  ARGUMENTS: strToBeSearched is a string expression containing a sub-string to be replaced; strSearchFor is the string expression to search for within strToBeSearched; strReplaceWith is the string expression to replace sub-string strSearchFor; start (optional) is the numeric character position to begin search; count (optional) is a value indicating the comparision constant.
  EXAMPLE: <%
  strTest = "This is an apple!"
  response.write Replace(strTest, "apple", "orange")
  %[/IMG]
  RESULT: This is an orange!

Right()
  FUNCTION: 返回字符串右边第length个字符以前的字符(含第length个字符).
  SYNTAX: Right(string, length)
  ARGUMENTS: .
  EXAMPLE: <%
  strTest = "This is an test!"
  response.write Right(strTest, 3)
  %[/IMG]
  RESULT: st!

Rnd()
  FUNCTION: 产生一个随机数.
  SYNTAX: Rnd [ (number) [/IMG]
  ARGUMENTS:
  EXAMPLE: <%
  Randomize()
  response.write RND()
  %[/IMG]
  RESULT: 任何一个在0 到 1 之间的数

Round()
  FUNCTION: 返回按指定位数进行四舍五入的数值.
  SYNTAX: Round(expression [, numRight[/IMG])
  ARGUMENTS: numRight数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数.
  EXAMPLE: <%
  i = 32.45678
  response.write Round(i)
  %[/IMG]
  RESULT: 32

Rtrim()
  FUNCTION: 去掉字符串右边的字符串.
  SYNTAX: Rtrim(string)
  ARGUMENTS:
  EXAMPLE: <%
  strTest = "This is a test!! "
  response.write RTrim(strTest)
  %[/IMG]
  RESULT: This is a test!!

Second()
  FUNCTION: 返回秒.
  SYNTAX: Second(time)
  ARGUMENTS: .
  EXAMPLE: <%=Second(#12:34:28 PM#)%[/IMG]
  RESULT: 28

StrReverse()
  FUNCTION: 反排一字符串
  SYNTAX: StrReverse(string)
  ARGUMENTS:
  EXAMPLE: <%
  strTest = "This is a test!!"
  response.write StrReverse(strTest)
  %[/IMG]
  RESULT: !!tset a si sihT

Time()
  FUNCTION: 返回系统时间.
  SYNTAX: Time()
  ARGUMENTS: .
  EXAMPLE: <%=Time%[/IMG]
  RESULT: 9:58:28 AM

Trim()
  FUNCTION: 去掉字符串左右的空格.
  SYNTAX: Trim(string)
  ARGUMENTS: string is any valid string expression.
  EXAMPLE: <%
  strTest = " This is a test!! "
  response.write Trim(strTest)
  %[/IMG]
  RESULT: This is a test!!

UBound()
  FUNCTION: 返回指定数组维数的最大可用下标.
  SYNTAX: Ubound(arrayname [, dimension[/IMG])
  ARGUMENTS: dimension (optional) 指定返回哪一维上界的整数。1 表示第一维,2 表示第二维,以此类推。如果省略 dimension 参数,则默认值为 1.
  EXAMPLE: <%
  i = Array("Monday","Tuesday","Wednesday")
  response.write UBound(i)
  %[/IMG]
  RESULT: 2

UCase()
  FUNCTION: 返回字符串的大写形式.
  SYNTAX: UCase(string)
  ARGUMENTS:
  EXAMPLE: <%
  strTest = "This is a test!!"
  response.write UCase(strTest)
  %[/IMG]
  RESULT: THIS IS A TEST!!

VarType()
  FUNCTION: 返回指示变量子类型的值
  SYNTAX: VarType(varName)
  ARGUMENTS:
  EXAMPLE: <%
  i = 3
  response.write varType(i)
  %[/IMG]
  RESULT: 2(数字)详见"asp常数"

WeekDay()
  FUNCTION: 返回在一周的第几天.
  SYNTAX: WeekDay(date [, firstdayofweek[/IMG])
  ARGUMENTS: .
  EXAMPLE: <%
  d = #8/4/99#
  response.write Weekday(d)
  %[/IMG]
  RESULT: 4(星期三)

WeekDayName()
FUNCTION: 返回一周第几天的名字.
SYNTAX: WeekDayName(weekday [, Abb [, firstdayofweek[/IMG][/IMG])
ARGUMENTS: Abb可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省略, 默认值为 False,即不缩写星期各天的名称.firstdayofweek指明星期第一天的数值
EXAMPLE: <%
d = #8/4/99#
response.write WeekdayName(Weekday(d))
%[/IMG]
RESULT: Wednesday

Year()
  FUNCTION: 返回当前的年份.
  SYNTAX: Year(date)
  ARGUMENTS:
  EXAMPLE: <%=Year(#8/4/99#)%[/IMG]
  RESULT: 1999 

- 作者: 午夜乞讨 2005年03月22日, 星期二 20:15  回复(0) |  引用(0)加入博采

Cookies
什么是 Cookie?Cookie 其实是一个标签,经常可能听到的中文翻译:小甜饼。当你访问一个需要唯一标识你的站址的 WEB 站点时,它会在你的硬盘上留下一个标记,下一次你访问同一个站点时,站点的页面会查找这个标记。
什么是 Cookie?Cookie 其实是一个标签,经常可能听到的中文翻译:小甜饼。当你访问一个需要唯一标识你的站址的 WEB 站点时,它会在你的硬盘上留下一个标记,下一次你访问同一个站点时,站点的页面会查找这个标记。

  每个 WEB 站点都有自己的标记,标记的内容可以随时读取,但只能由该站点的页面完成。每个站点的Cookie与其他所有站点的Cookie存在同一文件夹中的不同文件内(你可以在 win98 的 Windows 目录下的 Cookie 文件夹中找到它们,而 win2k 则在 Documents and Settings 文件夹下特定用户的 cookies 文件夹中)。

  一个 Cookie 就是一个唯一标识客户的标记,Cookie 可以包含在一个对话期或几个对话期之间某个 WEB 站点的所有页面共享的信息,使用 Cookie 还可以在页面之间交换信息。这项功能经常被使用在要求认证客户密码以及电子公告板、WEB 聊天室等 ASP 程序中。

  尽管现在听起来cookie没有什么激动人心的,但实际上利用它,你能实现许多有意义的功能!比如说:你可以在站点上放置一个调查问答表,询问访问者最喜欢的颜色和字体,然后根据这些定制用户的web界面。并且,你还可以保存访问者的登录密码,这样,当访问者再次访问这个站点时,不用再输入密码进行登录。

  当然,cookie也有一些不足。首先,由于利用cookie的功能可以编程实现一些不良企图,所以大多数的浏览器中都有安全设定,其中可以设置是否允许或者接受cookie(IE浏览器中"工具"--"Internet选项..."--"安全"--"自定义级别"--"Cookie的使用";Netscape浏览器中"工具"--"Cookie管理器"--"管理贮存的Cookie"即可),因此这就不能保证随时能使用cookie。再者,访问者可能有意或者无意地删除cookie。当访问者的机器遇到"蓝屏"死机时,或者重新格式化硬盘、安装系统后,原来保存的cookie将全部丢失。最后一点,有一些最初始的浏览器并不能支持cookie。


  ◆ 怎样利用cooklie?
  有2种使用cookie的基本方式:
  1、将cookie写入访问者的计算机(使用 Response 命令)
  2、从访问者的计算机中取回cookie(使用 Request 命令)

  ◆ 创建cookie的基本语法: Response.Cookies(cookie)[(key)|.attribute]=value
  这里的 cookie 是指定 cookie 的名称。
  而如果指定了 key,则该 cookie 就是一个字典。
  (测试一cookie是否为一个字典可用后面代码显示布尔值:<%=Request.Cookies("cookiename").HasKeys%>。为true是字典,false则不是。 )
  Attribute 指定 cookie 自身的有关信息。Attribute 参数可以是下列之一 :

  ①Domain 若被指定,则 cookie 将被发送到对该域的请求中去。域属性表明cookie由哪个网站产生或者读取,默认情况下,cookie的域属性设置为产生它的网站,但你也可以根据需要改变它。(Response.Cookies("CookieName").Domain = "www.mydomain.com")

  ②Path 为一路径属性,该属性可以实现更多的安全要求,通过设置网站上精确的路径,就能限制cookie的使用范围。如果未设置该属性,则使用应用程序的路径。(Response.Cookies("CookieName").Path = "/maindir/subdir/path" )

  ③Expires 指定 cookie 的过期日期。为了在会话结束后将 cookie 存储在客户端磁盘上,或在许多时候,我们希望能更长时间地在访问者的计算机上保存cookie。必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后 cookie 将到期。

  后面的代码,就可以设置cookie的使用到期时间为"2010年1月1日": Response.Cookies("CookieName").Expires=#January 01, 2010#
  后面的代码,将设定cookie的过期时间为"cookie的创建时间+365天":Response.Cookies("CookieName").Expires=Date+365
  但最好不要随便写 Response.Cookies("CookieName").Expires=Date,这样页面之间的调用时值会为空。


  执行下面的代码将会在访问者的计算机中创建一个cookie,名字=VisitorName,值=Ken :
Response.Cookies("VisitorName")="Ken"
  执行下面的代码将会在访问者的计算机中创建一个cookie,名字=VisitorName,值=表单中UserName的值
  Response.Cookies("VisitorName")=Request.Form("UserName")
  你可以扩展下面的代码成为Cookie子关键值(CookieSubName),即cookie字典的生成。代码如下:
  Response.Cookies("VisitorName")("FirstName")="Ken"
  Response.Cookies("VisitorName")("LastName")="Baumbach"

  ◆ 读取cookie的基本语法:Request.Cookies(cookie)[(key)|.attribute]
  cookie 指定要检索其值的 cookie。
  key 可选参数,用于从 cookie 字典中检索子关键字的值。
  attribe 指定 cookie 自身的有关信息。如:HasKeys 只读,指定 cookie 是否包含关键字。
  如果客户端浏览器发送了两个同名的 cookie,那么 Request.Cookie 将返回其中路径结构较深的一个。例如,如果有两个同名的的 cookie,但其中一个的路径属性为 /www/ 而另一个为 /www/home/,客户端浏览器同时将两个 cookie 都发送到 /www/home/ 目录中,那么 Request.Cookie 将只返回第二个 cookie。

  案例分析:

  ◆ num.asp(通过留在本地磁盘上的cookie记录一年内访问本站的次数,第一次显示"首次访问",以后显示"第几次访问")

 

								
<%
dim num
num=request.cookies("visitnum")
if num > "0" then
num=num+1
Response.write "您已是第"&num&"次访问本站点了。"
else
Response.write "欢迎您首次访问本站。"
num=1
end if
response.cookies("visitnum")=num
response.cookies("visitnum").expires=date+365
%>

  ◆ showcookie.asp(从Cookies文件夹中遍历出浏览器所有的Cookie name,以及相关的字典Cookie的显示(蓝字显示))

 

								
<%
For each cookie in Request.Cookies
if Request.cookies(cookie).HasKeys =false then
Response.write cookie & "=" & Request.Cookies(cookie)
Response.write ("
")
Else
for each key in Request.Cookies(cookie)
Response.write ("<font color=blue>")
Response.write cookie & ".("&key&")" & "=" & Request.Cookies(cookie)(key)
Response.write ("</font>
")
next
end if
next
%>

  ◆ check.asp
  首先,设置页面。然后,检查表单变量(在同一个页面中)。如果表单变量存在,就创建cookie,并设置到期时间。

 

								
<%@ LANGUAGE="VBSCRIPT" %>
<%
bgcolor = Request.Form("bgcolor")
fgcolor = Request.Form("fgcolor")
pwd = Request.form("pwd")

If bgcolor <>"" or fgcolor <>"" then
Response.cookies("check")("bgcolor") = bgcolor
Response.Cookies("check")("fgcolor") = fgcolor
Response.Cookies("check")("pwd") = pwd
Response.Cookies("check").Expires=#may 01, 2004#
End if
'接着,读取cookie
bgcolor = request.cookies("check")("bgcolor")
fgcolor = request.cookies("check")("fgcolor")
pwd = request.cookies("check")("pwd")
'如果cookie在访问者的计算机上不存在,就创建一个表单,询问相关信息
If bgcolor ="" and fgcolor ="" and pwd="" then
%>
<HTML>
<HEAD> </HEAD>
<body>
<DIV ALIGN="CENTER" >
<Form action="check.asp" method="POST">
Bgcolor: <input type="text" name="bgcolor"><BR>
Fgcolor: <input type="text" name="fgcolor"><BR>
Password:<input type="password" name="pwd"><BR>
<input type="submit" value="Submit">
</Form>
</DIV>
</BODY>
<%
End if
'如果cookie已经存在,并且bgcolor存在,就跳转到color.asp。
If bgcolor <> "" then
Response.Redirect "color.asp"
End if
%>

  ◆ color.asp(显示用户爱好颜色的页面特性)

 

								
<%
bgcolor=request.cookies("check")("bgcolor")
fgcolor=request.cookies("check")("fgcolor")
pwd=request.cookies("check")("pwd")
%>
<%response.write("<body bgcolor="&bgcolor&"><font color="&fgcolor&">")%>
你的密码是:
<%response.write(" "&pwd&" ")%>

- 作者: 午夜乞讨 2005年03月22日, 星期二 20:11  回复(0) |  引用(0)加入博采

部分常用脚本验证表单

长度限制   只能是英文  只能是数字 等等

 


部分常用脚本验证表单
 
1. 长度限制
程序代码:

<script>
function test() 
{
if(document.a.b.value.length>50)
  {
  alert("不能超过50个字符!");
  document.a.b.focus();
  return false;
  }
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL"  rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>
<script>
function test() 
{
if(document.a.b.value.length>50)
  {
  alert("不能超过50个字符!");
  document.a.b.focus();
  return false;
  }
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL"  rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form> 

2. 只能是汉字 
程序代码:

<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,"")">
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,"")">

3. 只能是英文
程序代码:

<script language=java script>
function onlyEng()
{
  if(!(event.keyCode>=65&&event.keyCode<=90))
    event.returnvalue=false;
}
</script>
<script language=java script>
function onlyEng()
{
  if(!(event.keyCode>=65&&event.keyCode<=90))
    event.returnvalue=false;
}
</script>

<input onkeydown="onlyEng();">

4. 只能是数字
程序代码:

<script language=java script>
function onlyNum()
{
  if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
    event.returnvalue=false;
}
</script>

<input onkeydown="onlyNum();">
<script language=java script>
function onlyNum()
{
  if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
    event.returnvalue=false;
}
</script>

<input onkeydown="onlyNum();">

5. 只能是英文字符和数字
程序代码:

<input onkeyup="value=value.replace(/[\W]/g,"") "onbeforepaste="clipboardData.setData("text",clipboardData.getData("text").replace(/[^\d]/g,""))">
<input onkeyup="value=value.replace(/[\W]/g,"") "onbeforepaste="clipboardData.setData("text",clipboardData.getData("text").replace(/[^\d]/g,""))">

6. 验证邮箱格式
程序代码:

<SCRIPT LANGUAGE=java script RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
  return true;
else
  alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>
<SCRIPT LANGUAGE=java script RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
  return true;
else
  alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

7. 屏蔽关键字(这里屏蔽sex和****)
程序代码:

<script language="java script1.2">
function test() {
if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>
<script language="java script1.2">
function test() {
if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

8. 两次输入密码是否相同
程序代码:

<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()
{ 
    with(document.all){
   if(input1.value!=input2.value)
   {
     alert("false")
  input1.value = "";
  input2.value = "";
   }
   else document.forms[0].submit();
   }
}
</script>
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()
{ 
    with(document.all){
   if(input1.value!=input2.value)
   {
     alert("false")
  input1.value = "";
  input2.value = "";
   }
   else document.forms[0].submit();
   }
}
</script>

屏蔽右键 很酷  
程序代码:

oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
加在body中


 

- 作者: 午夜乞讨 2005年03月22日, 星期二 19:44  回复(1) |  引用(0)加入博采

SQL语法部分

 ASP与Access数据库连接  ASP与SQL数据库连接  SQL常用命令使用方法

不错的东西


1. ASP与Access数据库连接:

<%@ language=VBscript%>
<%
 dim conn,mdbfile
 mdbfile=server.mappath("数据库名称.mdb")
 set conn=server.createobject("adodb.connection")
 conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile

%>

2. ASP与SQL数据库连接:

<%@ language=VBscript%>
<%
 dim conn
 set conn=server.createobject("ADODB.connection")
 con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>

建立记录集对象:

set rs=server.createobject("adodb.recordset")
rs.open SQL语句,conn,3,2


3. SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 ...... 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表"  (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 ...) values (值1,值2,值3 ...)"

sql="insert into 目标数据表 select * from 源数据表"  (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) ...... )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

4. 记录集对象的方法:

rs.movenext              将记录指针从当前的位置向下移一行
rs.moveprevious          将记录指针从当前的位置向上移一行
rs.movefirst             将记录指针移到数据表第一行
rs.movelast              将记录指针移到数据表最后一行
rs.absoluteposition=N    将记录指针移到数据表第N行
rs.absolutepage=N        将记录指针移到第N页的第一行
rs.pagesize=N            设置每页为N条记录
rs.pagecount             根据 pagesize 的设置返回总页数
rs.recordcount           返回记录总数
rs.bof                   返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof                   返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete                删除当前记录,但记录指针不会向下移动
rs.addnew                添加记录到数据表末端
rs.update                更新数据表记录

---------------------------------------

Recordset对象方法

Open方法

recordset.Open Source,ActiveConnection,CursorType,LockType,Options

Source
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。

ActiveConnection
Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。

CursorType
Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
--------------------------------------------------------------
常数                  常数值           说明
-------------------------------------------------------------
adOpenForwardOnly       0         缺省值,启动一个只能向前移动的游标(Forward Only)。
adOpenKeyset            1         启动一个Keyset类型的游标。
adOpenDynamic           2         启动一个Dynamic类型的游标。
adOpenStatic            3         启动一个Static类型的游标。
-------------------------------------------------------------
以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。

-------------------------------------------------------------
Recordset属性     adOpenForwardOnly    adOpenKeyset    adOpenDynamic    adOpenStatic
-------------------------------------------------------------
AbsolutePage           不支持            不支持          可读写            可读写
AbsolutePosition       不支持            不支持          可读写            可读写
ActiveConnection       可读写            可读写          可读写            可读写
BOF                    只读              只读            只读              只读
Bookmark               不支持            不支持          可读写            可读写
CacheSize              可读写            可读写          可读写            可读写
CursorLocation         可读写            可读写          可读写            可读写
CursorType             可读写            可读写          可读写            可读写
EditMode               只读              只读            只读              只读
EOF                    只读              只读            只读              只读
Filter                 可读写            可读写          可读写            可读写
LockType               可读写            可读写          可读写            可读写
MarshalOptions         可读写            可读写          可读写            可读写
MaxRecords             可读写            可读写          可读写            可读写
PageCount              不支持            不支持          只读              只读
PageSize               可读写            可读写          可读写            可读写
RecordCount            不支持            不支持          只读              只读
Source                 可读写            可读写          可读写            可读写
State                  只读              只读            只读              只读
Status                 只读              只读            只读              只读
AddNew                 支持              支持            支持              支持
CancelBatch            支持              支持            支持              支持
CancelUpdate           支持              支持            支持              支持
Clone                  不支持            不支持
Close                  支持              支持            支持              支持
Delete                 支持              支持            支持              支持
GetRows                支持              支持            支持              支持
Move                   不支持            支持            支持              支持
MoveFirst              支持              支持            支持              支持
MoveLast               不支持            支持            支持              支持
MoveNext               支持              支持            支持              支持
MovePrevious           不支持            支持            支持              支持
NextRecordset          支持              支持            支持              支持
Open                   支持              支持            支持              支持
Requery                支持              支持            支持              支持
Resync                 不支持            不支持          支持              支持
Supports               支持              支持            支持              支持
Update                 支持              支持            支持              支持
UpdateBatch            支持              支持            支持              支持
--------------------------------------------------------------
其中NextRecordset方法并不适用于Microsoft Access数据库。

LockType
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:

-------------------------------------------------------------
常数                  常数值              说明
--------------------------------------------------------------
adLockReadOnly           1           缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
adLockPrssimistic        2           当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。
adLockOptimistic         3           当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic    4           当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、
                                     删、改的操作。 
 

 DB2 提供了关连式资料库的查询语言 SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以"系统 R"的名字在 IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来 IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以 IBM SQL 为基础的标准关连式资料语言定义。

一、资料定义 DDL(Data Definition Language)
资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。

1、建表格:
CREATE TABLE table_name(
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...)
说明: 
DATATYPE --是资料的格式,详见表。
NUT NULL --可不可以允许资料有空的(尚未有资料填入)。
PRIMARY KEY --是本表的主键。

- 作者: 午夜乞讨 2005年03月22日, 星期二 19:39  回复(0) |  引用(0)加入博采

Response对象 详解
每一个程序语言或开发工具都有一定的函数与用户进行沟通,Asp同样如此。在Asp中负责将信息传递给用户的对象就是Response对象。Response对象用于动态响应客户端请求(Request),并将动态生成的响应结果返回到客户端浏览器中,使用Response对象可以直接发送信息给浏览器、重定向浏览器到另一个 URL 或设置 cookie 的值等等。 Response对象在asp编程中非常广泛,也是一种非常好用的工具。下面我们来具体看看Response对象:

语法:
    Response.collection|property|method

一、集合
    Response 对象只有一个集合 --Cookies,Cookies数据集合允许将数据设置在客户端的浏览器中。若指定的 cookie 不存在,则创建它。若存在,则自动更新数据。

    语法:Response.Cookies(Cookie)[Key.Attribute]

    这里的 cookie 是指定 cookie 的名称。而如果指定了 key,则该 cookie 就是一个字典。attribute 指定 cookie 自身的有关信息。attribute 参数可以是下列之一 :

   Domain 只写。若被指定,则 cookie 将被发送到对该域的请求中去。

   Expires 只写。指定 cookie 的过期日期。为了在会话结束后将 cookie 存储在客户端磁盘上,必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后 cookie 将到期。

   HasKeys 只读。指定 cookie 是否包含关键字。

   Path 只写。若被指定,则 cookie 将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。
 
     Secure 只写。指定Cookie是否安全。

示例:

<%
Response.Cookies("wrclub")("weburl")="http://www.wrclub.net"
Response.Cookies("wrclub").path="/wrclub/"
Response.Cookies("wrclub").Expires=#2003-11-30#
%>

二、方法

Response.AddHeader Name,Value

向应答中添加一个新的HTML标题。Name为新HTML标题的名称。Value为该头变量的值。你可以添加任何名称和任何值的HTML标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。

Response.AppendToLog String

向Web服务器的日志条目的末尾添加一字符串。String为要添加到日志文件中的字符串。

Response.BinaryWrite Data

该方法可以不经任何字符转换就将制定的信息写到HTTP输出,主要用于写非字符串信息(如客户端应用程序所需的二进制数据等)。Data是要发送的数据。

Response.Clear

删除缓冲区的所有HTML输出,但只删除响应正文而不删除响应标题。可以用该方法处理错误情况。需要注意的是,如果Response.Buffer设置为True,则该方法将导致运行是错误。

Response.End

强迫Web服务器停止执行更多的脚本,并发送当前结果,文件中剩余的内容将不被处理。如果Response.Buffer设置为True,则调用Response.end将缓冲输出。

Response.Flush

对于一个缓冲的回应,发送所有的缓冲信息。如果Response.Buffer设置为True,则该方法将导致运行是错误。

Response.Redirect URL

将客户端的浏览器重定向到一个新的Internet地址。Url为新网页的Internet地址。

Response.Write Variant

Response.Write是Response对象最常用的方法,该方法可以向浏览器发送字符串。Variant是一字符串或一个具有字符串值的变量。

三、属性

Response.Buffer

缓冲一Active Server Page。回应只到某一页结束或Response.Flush或Response.End方法调用时才发送出去。服务器将输出送给客户端后就不能再设置Buffer属性。

Response.CacheControl

指明是否Proxy服务器能缓存Active Server Page。缺省时,其值为FALSE 。当设置其属性为Public时,Proxy服务器可以缓冲由Asp产生的输出。

Response.CharSet(Charsetname)

将字符集名称(如GB)附加到Response对象中content-type标题的后面,用来设置web服务器响应给客户端的文件字符编码。一个可能的值为"ISO_LATIN_1"。

Response.ContentType

指明回应内容的类型。可能的值为text/plain和image/GIF,默认值text/HTML。

Response.Expires

浏览器可以缓存当前页的时间长度,以分钟为单位。

Response.ExpiresAbsolute

浏览器不能再缓存当前页的日期和时间。在未到期之前,可以返回。如果未指定时间,该主页在当天午夜到期;如果未指定日期,则到当天指定时间到期。

True/False = Response.IsClientConnected

属性为只读,指明自上次调用Response.Write之后,客户端是否仍然和服务器连接。该属性允许用户在客户端和服务器没有联接的情况下有更多的控制。例如,在从客户端提出请求起到服务器做出相应,其间要用去很长一段时间的情况下,这就可能有助于确保在继续处理脚本之前客户端仍是连通的。具有值TRUE或FALSE。

Response.PICS (PICS 字符串)

用于添加网页的PICS等级。PICS级别指明某一网页的内容级别,比如暴力或色情的程度等。

Response.Status = "状态描述字符串"

用来设置Web服务器要响应的状态行的值。

 

posted on 2008-03-13 19:45 影子 阅读(163) 评论(0)  编辑  收藏 所属分类: 学习笔记