吴伟贤のBlog

Feed Rss

存档:四月, 2008

php上传文件类型

04.15.2008, php上传文件类型已关闭评论, php, by .

application/octet-stream       //应用程序  
  323   text/h323        
  acx   application/internet-property-stream        
  ai   application/postscript        
  aif   audio/x-aiff        
  aifc   audio/x-aiff        
  aiff   audio/x-aiff        
  asf   video/x-ms-asf        
  asr   video/x-ms-asf        
  asx   video/x-ms-asf        
  au   audio/basic        
  avi   video/x-msvideo        
  axs   application/olescript        
  bas   text/plain        
  bcpio   application/x-bcpio        
  bin   application/octet-stream        
  bmp   image/bmp        
  c   text/plain        
  cat   application/vnd.ms-pkiseccat        
  cdf   application/x-cdf        
  cer   application/x-x509-ca-cert        
  class   application/octet-stream        
  clp   application/x-msclip        
  cmx   image/x-cmx        
  cod   image/cis-cod        
  cpio   application/x-cpio        
  crd   application/x-mscardfile        
  crl   application/pkix-crl        
  crt   application/x-x509-ca-cert        
  csh   application/x-csh        
  css   text/css        
  dcr   application/x-director        
  der   application/x-x509-ca-cert        
  dir   application/x-director        
  dll   application/x-msdownload        
  dms   application/octet-stream        
  doc   application/msword        
  dot   application/msword        
  dvi   application/x-dvi        
  dxr   application/x-director        
  eps   application/postscript        
  etx   text/x-setext        
  evy   application/envoy        
  exe   application/octet-stream        
  fif   application/fractals        
  flr   x-world/x-vrml        
  gif   image/gif        
  gtar   application/x-gtar        
  gz   application/x-gzip        
  h   text/plain        
  hdf   application/x-hdf        
  hlp   application/winhlp        
  hqx   application/mac-binhex40        
  hta   application/hta        
  htc   text/x-component        
  htm   text/html        
  html   text/html        
  htt   text/webviewhtml        
  ico   image/x-icon        
  ief   image/ief        
  iii   application/x-iphone        
  ins   application/x-internet-signup        
  isp   application/x-internet-signup        
  jfif   image/pipeg        
  jpe   image/jpeg        
  jpeg   image/jpeg        
  jpg   image/jpeg        
  js   application/x-javascript        
  latex   application/x-latex        
  lha   application/octet-stream        
  lsf   video/x-la-asf        
  lsx   video/x-la-asf        
  lzh   application/octet-stream        
  m13   application/x-msmediaview        
  m14   application/x-msmediaview        
  m3u   audio/x-mpegurl        
  man   application/x-troff-man        
  mdb   application/x-msaccess        
  me   application/x-troff-me        
  mht   message/rfc822        
  mhtml   message/rfc822        
  mid   audio/mid        
  mny   application/x-msmoney        
  mov   video/quicktime        
  movie   video/x-sgi-movie        
  mp2   video/mpeg        
  mp3   audio/mpeg        
  mpa   video/mpeg        
  mpe   video/mpeg        
  mpeg   video/mpeg        
  mpg   video/mpeg        
  mpp   application/vnd.ms-project        
  mpv2   video/mpeg        
  ms   application/x-troff-ms        
  mvb   application/x-msmediaview        
  nws   message/rfc822        
  oda   application/oda        
  p10   application/pkcs10        
  p12   application/x-pkcs12        
  p7b   application/x-pkcs7-certificates        
  p7c   application/x-pkcs7-mime        
  p7m   application/x-pkcs7-mime        
  p7r   application/x-pkcs7-certreqresp        
  p7s   application/x-pkcs7-signature        
  pbm   image/x-portable-bitmap        
  pdf   application/pdf        
  pfx   application/x-pkcs12        
  pgm   image/x-portable-graymap        
  pko   application/ynd.ms-pkipko        
  pma   application/x-perfmon        
  pmc   application/x-perfmon        
  pml   application/x-perfmon        
  pmr   application/x-perfmon        
  pmw   application/x-perfmon        
  pnm   image/x-portable-anymap        
  pot,   application/vnd.ms-powerpoint        
  ppm   image/x-portable-pixmap        
  pps   application/vnd.ms-powerpoint        
  ppt   application/vnd.ms-powerpoint        
  prf   application/pics-rules        
  ps   application/postscript        
  pub   application/x-mspublisher        
  qt   video/quicktime        
  ra   audio/x-pn-realaudio        
  ram   audio/x-pn-realaudio        
  ras   image/x-cmu-raster        
  rgb   image/x-rgb        
  rmi   audio/mid        
  roff   application/x-troff        
  rtf   application/rtf        
  rtx   text/richtext        
  scd   application/x-msschedule        
  sct   text/scriptlet        
  setpay   application/set-payment-initiation        
  setreg   application/set-registration-initiation        
  sh   application/x-sh        
  shar   application/x-shar        
  sit   application/x-stuffit        
  snd   audio/basic        
  spc   application/x-pkcs7-certificates        
  spl   application/futuresplash        
  src   application/x-wais-source        
  sst   application/vnd.ms-pkicertstore        
  stl   application/vnd.ms-pkistl        
  stm   text/html        
  sv4cpio   application/x-sv4cpio        
  sv4crc   application/x-sv4crc        
  t   application/x-troff        
  tar   application/x-tar        
  tcl   application/x-tcl        
  tex   application/x-tex        
  texi   application/x-texinfo        
  texinfo   application/x-texinfo        
  tgz   application/x-compressed        
  tif   image/tiff        
  tiff   image/tiff        
  tr   application/x-troff        
  trm   application/x-msterminal        
  tsv   text/tab-separated-values        
  txt   text/plain        
  uls   text/iuls        
  ustar   application/x-ustar        
  vcf   text/x-vcard        
  vrml   x-world/x-vrml        
  wav   audio/x-wav        
  wcm   application/vnd.ms-works        
  wdb   application/vnd.ms-works        
  wks   application/vnd.ms-works        
  wmf   application/x-msmetafile        
  wps   application/vnd.ms-works        
  wri   application/x-mswrite        
  wrl   x-world/x-vrml        
  wrz   x-world/x-vrml        
  xaf   x-world/x-vrml        
  xbm   image/x-xbitmap        
  xla   application/vnd.ms-excel        
  xlc   application/vnd.ms-excel        
  xlm   application/vnd.ms-excel        
  xls   application/vnd.ms-excel        
  xlt   application/vnd.ms-excel        
  xlw   application/vnd.ms-excel        
  xof   x-world/x-vrml        
  xpm   image/x-xpixmap        
  xwd   image/x-xwindowdump        
  z   application/x-compress        
  zip   application/zip  

了解更多

asp生成html

04.07.2008, asp生成html已关闭评论, asp, by .

<%
Function GetPage(url)
 ‘获得文件内容
 dim Retrieval
 Set Retrieval = CreateObject("Microsoft.XMLHTTP")
 With Retrieval
  .Open "Get", url, False ‘, "", ""
  .Send
  GetPage = BytesToBstr(.ResponseBody)
 End With
 Set Retrieval = Nothing
End Function

Function BytesToBstr(body)
 dim objstream
 set objstream = Server.CreateObject("adodb.stream")
 objstream.Type = 1
 objstream.Mode =3
 objstream.Open
 objstream.Write body
 objstream.Position = 0
 objstream.Type = 2
 objstream.Charset = "GB2312"
 BytesToBstr = objstream.ReadText
 objstream.Close
 set objstream = nothing
End Function

on error resume next
Url="http://www.sina.com.cn"’要读取的页面地址
response.write "开始更新首页…"
wstr = GetPage(Url)

‘response.write(wstr)
Set fs=Server.CreateObject("Scripting.FileSystemObject")

了解更多

asp日期函数

04.07.2008, asp日期函数已关闭评论, asp, by .

Date 函数
描述:返回当前系统日期。
语法:Date

DateAdd 函数
描述:返回已添加指定时间间隔的日期。
语法:DateAdd(interval, number, date)
interval: 必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number: 必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date: 必选。Variant 或要添加 interval 的表示日期的文字。  
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
说明:可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。
DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:
NewDate = DateAdd("m", 1, "31-Jan-95")
在这个例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。
如果计算的日期是在公元 100 年之前则会产生错误。
如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。

DateDiff 函数
描述:返回两个日期之间的时间间隔。
语法:DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)
interval: 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2: 必选。日期表达式。用于计算的两个日期。
firstdayofweek: 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。
说明:DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。
如果 date1 晚于 date2,则 DateDiff 函数返回负数。
firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。

DatePart 函数
描述:返回给定日期的指定部分。
语法:DatePart(interval, date[, firstdayofweek[, firstweekofyear>)
DatePart: 函数的语法有以下参数:
interval: 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。
date: 必选。要计算的日期表达式。
firstdayof week: 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。
说明:DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。
firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。
如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码

了解更多

ASP日期函数

04.07.2008, ASP日期函数已关闭评论, asp, by .

<%=year(now)%>年<%=month(now)%>月<%=day(now)%>日 <%=weekdayname(weekday(now))%>
显示:
今日是: 2003年10月31日 星期五

VBScript有许多函数,使你可以得到各种格式的日期和时间。你已经用过了这些函数中的一个。你可以用函数NOW返回当前的日期和时间:

At the tone,the time will bi: <%=NOW%>

你应该注意,返回的日期和时间是你的Web服务器的系统时钟的日期和时间。如果身处纽约的某个人在看你的网页,他看到的日期和时间与她当地的日期和时间也许是不一至的。

函数NOW同时返回日期和时间。如果你只想返回当前日期,你可以使用函数DATE。如果你只想返回当前时间,你可以使用函数TIME。例如:

The date is :<%=DATE%>

The time is :<%=TIME%>

操作日期

使用函数MONTH(),DAY(),WEEKDAY(),和YEAR(),你可以把一个日期分割成更小的部分。所有这些函数都以一个日期表达式作为参数,并返回一个数字。这里有一个如何使用这些函数的例子:

The Month is :<%=MONTH(DATE)%>

<BR>

The Day is : <%=DAY(DATE)%>

<BR>

The weekday is :<%=WEEKDAY(DATE)%>

<BR>

The year is :<%=YEAR(DATE)%>

假设当前日期是1997年8月9日,星期三。如果你把上面的例子包含在一个ASP网页中,在浏览器中将显示如下的文字:

The Month is : 7

The Day is : 9

The weekday is : 4

The year is : 1997

注意函数weekday()假定一个星期的第一天是星期日。如果你想把星期一作为一周的第一天,你可以使用如下的语句:

The weekday is :<%=weekday(DATE,vbWednesday)%>

你可以把任何一天作为一周的第一天。要指定一周的第一天是星期几,只要用vbSunday,vbMonday,vbTusday,vbWednesday,vbThurday,vbFriday或vbSaturday代替函数WEEKDAY()的第二个参数即可。

你不单可以用函数DATE作为这些函数的参数。你也可以提供一个日期字符串或者一个日期常数作为参数,如下例所示:

The weekday is :<%=WEEKDAY(#12/25/2000#)%>

The weekday is :<%=WEEKDAY(“12-25-2000”)%>

这两个函数都返回2000年圣诞节这一天是星期几。(这也许使你不习惯:返回值是2,代表星期一。)表达式#12/25/2000#是一个日期常数,日期常数总是括在字符’#’中。表达式”12-25-2000”是一个日期字符串。用这两种方法为函数提供一个日期都是可行的。

要以更加易读的形式返回月份和星期几,你可以使用函数WEEKDAYNAME()或MONTHNAME()。这两个函数返回的是字符串。这里有一个使用这两个函数的例子:

The month is :<%=MONTHNAME(MONTH(DATE))%>

The weekday is:<%=WEEKDAYNAME(WEEKDAY(DATE))%>

假设当前日期是八月,星期三。在这种情况下,第一个函数将返回字符串July,第二个函数返回字符串Wednesday。你可以把1到12之间的任何整数作为函数MONTHNAME()的参数,你可以把1到7之间的任何整数作为函数WEEKDAYNAME()的参数。

在缺省情况下,这两个函数不会缩写返回的字符串。函数MONTHNAME()返回的是July而不是Jul,函数WEEKDAYNAME()返回的是Wednesday而不是Wed。然而,通过指定第二个参数为TRUE,你可以强制这两个函数返回缩写的字符串。(TRUE表示要缩写,FALSE表示不缩写。)如下例所示:

The month is: <%=MONTHNAME(MONTH(DATE),TRUE)%>

The weekday is: <%=WEEKDAYNAME(WEEKDAY(DATE),TRUE)%>

操作时间

你也可以把时间分割成更小的部分。通过函数HOUR(),MINUTE(),和SECOND(),你可以返回时间的不同部分。下面是使用这些函数的一些例子以及可能的返回值:

The hour is:<%=HOUR(TIME)%>

The hour is:21

The minute is:<%=MINUTE(TIME)%>

The minute is:39

The second is:<%=SECOND(TIME)%>

The second is:34

函数HOUR()返回一个0到23之间的整数(0点是午夜后的一个小时)。函数MINUTE()返回一个0到59之间的整数。函数SECOND()也返回一个0到59之间的整数。

你不单可以用函数TIME作为这些函数的参数,你还可以提供一个时间常数或时间字符串作为参数。下面的两个例子都从时间中抽取分钟数34:

The minute is:<%=MINUTE(#12:34:19#%>

The minute is:34

The minute is:<%=MINUTE(“12:34:23”)%>

The minute is:34

比较日期和时间

VBScript有两个用于比较日期和时间的函数。你可以用函数DATEADD()对日期和时间作加法,用函数DATEDIFF()计算两个日期或时间的间隔。下面是使用函数DATEADD()的一些例子:

Your registration will exprie on <%=DATEADD(“ww”,6,DATE)%>

Exactly fifteen seconds from now,at<%=DATEADD(“s”,15,TIME)%>your computer

will melt.

第一个例子返回比当前日期晚六个星期的日期,第二个例子返回15秒钟后的时间中的秒数。

函数DATEADD()有三个参数:

第一个参数指定一个时间间隔。(见表8.2)

第二个参数时间间隔的倍数因子。

最后,第三个参数是一个日期或时间的变量或常量。

表8.2 日期和时间间隔

间隔 描述

yyyy 年

q 季度

m 月

y 天

d 天

w 天

ww 星期

h 小时

m 分钟

s 秒

你可以用函数DATEDIFF确定两个日期或时间之间的间隔。下面的例子演示了如何使用这个函数:

You have been a member for <%=DATEDIFF(“d”,”1/1/1988”,DATE)%> days.

There are exactly <%=DATEDIFF(“s”,DATE,”1/1/2000”)%> seconds remaining until

the year 2000.

第一个例子中的DATEDIFF()函数返回1/1/1988与当前日期之间的天数。第二个例子中的DATEDIFF()返回当前日期到2000年之间的秒数。

函数DATEDIFF()有三个参数:

第一个参数是一个日期或时间间隔(参见表8.2).

另两个参数是两个日期。为了避免出现负数,第一个日期参数应该比第二个早。(如果该函数返回一个负数,你应该知道第一个日期比第二个日期晚。)

格式化日期和时间

你可以规定一个日期或时间的显示格式。在缺省情况下,当你通过函数DATE显示一个日期时,它看起来是这样的:

7/9/97

但是,你可以用函数FORMATDATETIME()显示一个基于你计算机的区域设置的日期。你可以把一个日期显示为短日期格式或长日期格式。

注意

从控制面板中选择区域设置图标,可以为你的计算机进行区域设置。你可以通过区域设置来指定日期和时间的长格式或短格式。

下面的例子演示了如何控制长日期格式和短日期格式的显示:

Short Date:<%=FORMATDATETIME(DATE,vbShortDate)%>

Long Date:<%=FORMATDATETIME(DATE,vbLongDate)%>

当根据英国(美国)区域设置显示日期时,日期显示为如下的格式:

Short Date:7/9/97

Long Date:Wednesday,July 09,1997

注意短日期格式的显示与不做任何格式化时完 了解更多

常用ASP函数

04.07.2008, 常用ASP函数已关闭评论, asp, by .

Array() 
 FUNCTION: 返回一个数组 
 SYNTAX: Array(list) 
 ARGUMENTS: 字符,数字均可 
 EXAMPLE: <%
Dim myArray()
For i = 1 to 7
  Redim Preserve myArray(i)
  myArray(i) = WeekdayName(i)
Next
%> 
 RESULT: 建立了一个包含7个元素的数组myArray
myArray("Sunday","Monday", … … "Saturday") 
 
CInt() 
 FUNCTION: 将一个表达式转化为数字类型 
 SYNTAX: CInt(expression) 
 ARGUMENTS: 任何有效的字符均可 
 EXAMPLE: <%
f = "234"
response.write cINT(f) + 2
%> 
 RESULT: 236
转化字符"234"为数字"234",如果字符串为空,则返回0值  
 
CreateObject() 
 FUNCTION: 建立和返回一个已注册的ACTIVEX组件的实例。 
 SYNTAX: CreateObject(objName) 
 ARGUMENTS: objName 是任何一个有效、已注册的ACTIVEX组件的名字. 
 EXAMPLE: <%
Set con = Server.CreateObject("ADODB.Connection")
%> 
 RESULT: 
 
CStr() 
 FUNCTION: 转化一个表达式为字符串. 
 SYNTAX: CStr(expression) 
 ARGUMENTS: expression 是任何有效的表达式。 
 EXAMPLE: <%
s = 3 + 2
response.write "The result is: " & cStr(s)
%> 
 RESULT: 转化数字“5”为字符“5”。 
 
Date() 
 FUNCTION: 返回当前系统日期. 
 SYNTAX: Date() 
 ARGUMENTS: None. 
 EXAMPLE: <%=Date%> 
 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
%> 

<%
currentDate = #12:34:45 PM#
newDate = DateAdd("h",3,currentDate)
response.write newDate
%> 
 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]]) 
 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."
%> 
 RESULT: 从8/4/99 到2000年还有 150 天. 
 
Day() 
 FUNCTION: 返回一个月的第几日 . 
 SYNTAX: Day(date) 
 ARGUMENTS: date 是任何有效的日期。 
 EXAMPLE: <%=Day(#8/4/99#)%> 
 RESULT: 4 
 
FormatCurrency() 
 FUNCTION: 返回表达式,此表达式已被格式化为货币值  
 SYNTAX: FormatCurrency(Expression [, Digit ][, LeadingDigit ][, Paren ][, 
GroupDigit]]]]) 
 ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是
计算机的区域设置; LeadingDigit 三态常数,指示是否显示小数值小数点前面的
零。 
 EXAMPLE: <%=FormatCurrency(34.3456)%> 
 RESULT: $34.35 
 
FormatDateTime() 
 FUNCTION: 返回表达式,此表达式已被格式化为日期或时间 
 SYNTAX: FormatDateTime(Date, [, NamedFormat]) 
 ARGUMENTS: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 
vbGeneralDate. 
 EXAMPLE: <%=FormatDateTime("08/4/99", vbLongDate)%> 
 RESULT: Wednesday, August 04, 1999 
 
FormatNumber() 
 FUNCTION: 返回表达式,此表达式已被格式化为数值. 
 SYNTAX: FormatNumber(Expression [, Digit ][, LeadingDigit ][, Paren ][, 
GroupDigit]]]]) 
 ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是
计算机的区域设置。; LeadingDigit i指示小数点右侧显示位数的数值。默认值为 –
1,指示使用的是计算机的区域设置。; Paren 指示小数点右侧显示位数的数值。默认
值为 -1,指示使用的是计算机的区域设置。; GroupDigit i指示小数点右侧显示位数
的数值。默认值为 -1,指示使用的是计算机的区域设置。. 
 EXAMPLE: <%=FormatNumber(45.324567, 3)%> 
 RESULT: 45.325 
 
FormatPercent() 
 FUNCTION: 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 
100 )。 (%) 
 SYNTAX: FormatPercent(Expression [, Digit ][, LeadingDigit ][, Paren ][, 
GroupDigit]]]]) 
 ARGUMENTS: 同上. 
 EXAMPLE: <%=FormatPercent(0.45267, 3)%> 
 RESULT: 45.267% 
 
Hour() 
 FUNCTION: 以24时返回小时数. 
 SYNTAX: Hour(time) 
 ARGUMENTS: 
 EXAMPLE: <%=Hour(#4:45:34 PM#)%> 
 RESULT: 16
(Hour has been converted to 24-hour system) 
 
Instr() 
 FUNCTION: 返回字符或字符串在另一个字符串中第一次出现的位置. 
 SYNTAX: Instr([start, ] strToBeSearched, strSearchFor [, compare]) 
 ARGUMENTS: Start为搜索的起始值,strToBeSearched接受搜索的字符串 
strSearchFor要搜索的字符.compare比较方式(详细见ASP常数) 
 EXAMPLE: <%
strText = "This is a test!!"
pos = Instr(strText, "a")
response.write pos
%> 
 RESULT: 9  InstrRev() 
 FUNCTION: 同上,只是从字符串的最后一个搜索起 
 SYNTAX: InstrRev([start, ] strToBeSearched, strSearchFor [, compare]) 
 ARGUMENTS: 同上. 
 EXAMPLE: <%
strText = "This is a test!!"
pos = InstrRev(strText, "s")
response.write pos
%> 
 RESULT: 13

 
Int() 
 FUNCTION: 返回数值类型,不四舍五入,注意取值是不大于它的整数。 
 SYNTAX: Int(number) 
 ARGUMENTS: 
 EXAMPLE: <%=INT(32.89)%>  <%=int(-3.33)%>
 RESULT: 32  -4
 
IsArray() 
 FUNCTION: 判断一对象是否为数组,返回布尔值 . 
 SYNTAX: IsArray(name) 
 ARGUMENTS: 
 EXAMPLE: <%
strTest = "Test!"
response.write IsArray(strTest)
%> 
 RESULT: False 
 
IsDate() 
 FUNCTION: 判断一对象是否为日期,返回布尔值 
 SYNTAX: IsDate(expression) 
 ARGUMENTS: expression is any valid expression. 
 EXAMPLE: <%
strTest = "8/4/99"
response.write IsDate(strTest)
%> 
 RESULT: True 
 
IsEmpty() 
 FUNCTION: 判断一对象是否初始化, 了解更多

多个域名绑定一个空间互不影响

04.07.2008, 多个域名绑定一个空间互不影响已关闭评论, windows, by .

 

第一步:创建转向控制页面
  创建网站默认的首页文件(通常为"index.asp"或"default.asp")如下:

<%
‘取得HTTP输入的值并付值到HTOST中
host=lcase(request.servervariables("HTTP_HOST"))
‘开始条件跳转
Select CASE host
‘ 如果HOST的值是www.abc0.com就选择事件case"www.abc0.com"的命令
CASE "www.abc0.com"
‘ Below is the redirect command
response.redirect "index_abc0.asp"
CASE "www.abc1.com"
‘ Below is the redirect command
response.redirect "index_abc1.asp"
CASE "www.abc2.com"
‘ Below is the redirect command
response.redirect "index_abc2.asp"
‘ 继续添加…
CASE "www.abcn.com"
‘ Below is the redirect command
response.redirect "index_abcn.asp"

‘We use CASE ELSE to fix any other requests
CASE ELSE
response.redirect "default.asp"
END Select
%>

  第二步:创建相应的被转向文件
  创建"index_abc0.asp"?"index_abcN.asp",作为各个网站的首页。

了解更多

着Internet的发展,Web技术日新月异。继通用网关接口(CGI)之后,“ASP”(Active Server Pages)作为一种典型的服务器端网页设计技术,被广泛地应用在网上银行、电子商务、搜索引擎等各种互联网应用中。同时Access数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体。因此ASP+Access成为许多中小型网上应用系统的首选方案。但ASP+Access解决方案在为我们带来便捷的同时,也带来了不容忽视的安全问题。

ASP+Access的安全隐患ASP+Access解决方案的主要安全隐患来自Access数据库的安全性,其次在于ASP网页设计过程中的安全漏洞。

1.Access数据库的存储隐患

在ASP+Access应用系统中,如果获得或者猜到Access数据库的存储路径和数据库名,则该数据库就可以被下载到本地。例如:对于网上书店的Access数据库,人们一般命名为book.mdb、store.mdb等,而存储的路径一般为“URL/database”或干脆放在根目录(“URL/”)下。这样,只要在浏览器地址栏中敲入地址:“URL/database/store.mdb”,就可以轻易地把store.mdb下载到本地的机器中。

2.Access数据库的解密隐患

由于Access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行异或来形成一个加密串,并将其存储在*.mdb文件中从地址“&H42”开始的区域内。由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,就可以轻松地得到Access数据库的密码。基于这种原理,可以很容易地编制出解密程序。

由此可见,无论是否设置了数据库密码,只要数据库被下载,其信息就没有任何安全性可言了。

3.源代码的安全隐患

由于ASP程序采用的是非编译性语言,这大大降低了程序源代码的安全性。任何人只要进入站点,就可以获得源代码,从而造成ASP应用程序源代码的泄露。

4.程序设计中的安全隐患

ASP代码利用表单(form)实现与用户交互的功能,而相应的内容会反映在浏览器的地址栏中,如果不采用适当的安全措施,只要记下这些内容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入“……page.asp?x=1”,即可不经过表单页面直接进入满足“x=1”条件的页面。因此,在设计验证或注册页面时,必须采取特殊措施来避免此类问题的发生。

提高数据库的安全性由于Access数据库加密机制过于简单,因此,如何有效地防止Access数据库被下载,就成了提高ASP+Access解决方案安全性的重中之重。

1.非常规命名法

防止数据库被找到的简便方法是为Access数据库文件起一个复杂的非常规名字,并把它存放在多层目录下。例如,对于网上书店的数据库文件,不要简单地命名为“book.mdb”或“store.mdb”,而是要起个非常规的名字,例如:

faq19jhsvzbal.mdb,再把它放在如./akkjj16t/kjhgb661/acd/avccx55 之类的深层目录下。这样,对于一些通过猜的方式得到Access数据库文件名的非法访问方法起到了有效的阻止作用。

2.使用ODBC数据源

在ASP程序设计中,应尽量使用ODBC数据源,不要把数据库名直接写在程序中,否则,数据库名将随ASP源代码的失密而一同失密。例如: DBPath = Server.MapPath(“./akkjj16t/
kjhgb661/acd/avccx55/faq19jhsvzbal.mdb ”)
conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath 可见,即使数据库名字起得再怪异,隐藏的目录再深,ASP源代码失密后,数据库也很容易被下载下来。如果使用ODBC数据源,就不会存在这样的问题了:

conn.open “ODBC-DSN名”

对ASP页面进行加密为有效地防止ASP源代码泄露,可以对ASP页面进行加密。一般有两种方法对ASP页面进行加密。一种是使用组件技术将编程逻辑封装入DLL之中;另一种是使用微软的Script Encoder对ASP页面进行加密。笔者认为,使用组件技术存在的主要问题是每段代码均需组件化,操作比较烦琐,工作量较大;而使用Script Encoder对ASP页面进行加密,操作简单、收效良好。

Script Encoder方法具有许多优点:

1.HTML仍具有很好的可编辑性。Script Encoder只加密在HTML页面中嵌入的ASP代码,其他部分仍保持不变,这就使得我们仍然可以使用FrontPage或Dreamweaver等常用网页编辑工具对HTML部分进行修改、完善,只是不能对ASP加密部分进行修改,否则将导致文件失效。

2.操作简单。只要掌握几个命令行参数即可。Script Encoder的运行程序是screnc.exe,其使用方法如下:

screnc [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile

其中的参数含义如下:

s:屏蔽屏幕输出;

f:指定输出文件是否覆盖同名输入文件;

xl:是否在.asp文件的顶部添加@Language指令;

l:defLanguag指定缺省的脚本语言;

e:defExtension 指定待加密文件的扩展名。

3.可以批量加密文件。使用Script Encoder可以对当前目录中的所有的ASP 文件进行加密,并把加密后的文件统一输出到相应的目录中。例如:

screnc *.asp c:\temp

4. Script Encoder是免费软件。该加密软件可以从微软网站下载:

http://msdn.microsoft.com/scripting/vbscript/download/x86/sce10en.exe。下载后,运行安装即可。

利用Session对象进行注册验证

为防止未经注册的用户绕过注册界面直接进入应用系统,可以采用Session对象进行注册验证。Session对象最大的优点是可以把某用户的信息保留下来,让后续的网页读取。例如,要设计如图1所示的注册页面。

设计要求用户注册成功后系统启动hrmis.asp?page=1页面。如果不采用Session对象进行注册验证,则用户在浏览器中敲入“URL/hrmis.asp?page=1”即可绕过注册界面,直接进入系统。利用Session对象可以有效阻止这一情况的发生。相关的程序代码如下:

<% ‘ 读取用户输入的账号和密码
UserID = Request(“UserID”)
Password = Request(“Password”)
‘ 检查UserID 及Password 是否正确(实际程序可能会比较复杂)
If UserID <> “hrmis” or Password <>
“password” Then
Response.Write “账号错误!”
Response.End
End If
‘将Session 对象设置为通过验证状态
Session(“Passed”) = True
%>
进入应用程序后,首先进行验证:

<% ‘如果未通过验证,返回Login状态
If Not Session(“Passed”) Then
Response.Redirect “login.htm”
End If
%>

了解更多

一个简单的域名自动转向源代码

04.07.2008, 一个简单的域名自动转向源代码已关闭评论, div+css & html, by .

<%
if Request.ServerVariables("SERVER_NAME")="www.tajh.net" then
response.redirect "index1.htm"
else
response.redirect "index2.htm"
end if
%>
此ASP代码功能是当两个域名指向同一个主机时,可以自动重定向到相应的域名网站
了解更多

ASP编程中20个非常有用的例子

04.07.2008, ASP编程中20个非常有用的例子已关闭评论, asp, by .

 

1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法
< p align="center" >< font size="4" face="Arial" >< b >
The Physical path to this virtual website is:
< /b >< /font >
< font color="#FF0000" size="6" face="Arial" >
< %= Server.MapPath("\")% >
< /font >< /p >
2.我如何知道使用者所用的浏览器?
答:使用the Request object方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
If Instr(strBrowser,"MSIE") < > 0 Then
  Response.redirect("ForMSIEOnly.htm")
Else
  Response.redirect("ForAll.htm")
End If
 

3.如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff("d",Now,"01/01/1990")
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998

4.如何显示随机图象
< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
% >
显示
< img src="< %=dpic% >" >

5.如何回到先前的页面
答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >
或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >

6.如何确定对方的IP地址
答:< %=Request.serverVariables("REMOTE_ADDR)% >

7.如何链结到一副图片上
答:< % @Languages=vbs cript % >
< % response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
% >

8.强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status="401 not Authorized"
response.end
% >

9.如何传递变量从一页到另一页
答:用 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 >

10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答:由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你 (:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
< % yourVar="测试对话框"% >
< % s cript language=”javas cript” >
alert("< %=yourvar% >")
< /s cript >

11.有没有办法保护自己的源代码,不给人看到
答:可以去下载一个微软的Windows s cript Encoder,它可以对asp的脚本和客户端javas cript/vbs cript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有s cript engine 5(装一个ie5就有了)才能执行。

12.怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))

13.global.asa文件总是不起作用?
答:只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?

14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:Internet Sevices Manager – > 选择default web site – >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting)- > 点击按钮 "配置"- > app mapping – >点击按钮"Add" – > executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.Delete 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。

15.如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll

第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:
1) 打开IIS管理控制台。
2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。
3) 单击"create an empty package"。
4) 给该包命名。
5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。
6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。
7) 选择 "install new component" [b]。
8) 找到你的.dll文件然后选择next到完成。
要删除这个对象,只要选择它的图标,然后选择delete。
附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。

16. ASP与Access数据库连接:
<%@ language=VBs cript%>
<%
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
%>

17. ASP与SQL数据库连接:
<%@ language=VBs cript%>
<%
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

了解更多

墓志铭打算写点啥

04.03.2008, 墓志铭打算写点啥已关闭评论, 杂七杂八, by .

清明节(4月4日)快到了, "如果你死后,墓志铭打算写点啥?"以下是一些回复:
1.一居室,求合租,面议。
2.小事招魂,大事挖坟。
3.我觉得我还可以抢救一下!
4.广告位招租
5.提供鞭尸服务,一次100!
6.基因重组中,请稍候二十年
7.单挑冥王哈迪斯中,征求组队!
8.牧师,帮我复活一下下,谢谢,坐标××.××。
9.当你看清这行字的时候:朋友,你踩到我了。
10.老子终于不用怕鬼了!
11.给爷笑一个,要不爷给你笑一个?
12.神农氏的墓志铭:我靠!这草有毒!
13.摸骨算命
14.陪聊,提供夜间上门服务。
15.还看,你丫也会有这一天的
16.我從前是個胖子,現在和所有躺著的人一樣有骨感。
17.終於可以失掉身體80的水分,可以變瘦了!
18.强力推荐这个给我挖坑的,电话:xxxxxxxxx
19.曾经很黄很暴力,现在很黑很安静
20.谢谢来访,改日登门回拜.呵呵
21.来客请便,无人倒茶,站累躺下一起聊聊?
22。终于解决住房问题了
了解更多