我总结的一些小应用,高手就不要看了
--------------------------------------------------------------------------------
让IE后退时不取出Cache里的内容
有朋友问我如何在ASP中实现让IE后退时不取出Cache里的内容,现在我告诉大家只要把下面的语句Copy到ASP的<head>...</head>就可以了:
<%
Response.Buffer=true
Response.Expires=0
Response.CacheControl="no-cache"
%>
下面的等同
<html>
<head>
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
</head>
--------------------------------------------------------------------------------
数据库查询中的特殊字符的问题
在进行数据库的查询时,会经常遇到这样的情况:
例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的字符,例如单引号,“|”号,双引号或者连字符“&”。
例如他的名字是1"test,密码是A|&900
这时当你执行以下的查询语句时,肯定会报错:
SQL = "SELECT * FROM SecurityLevel WHERE UID="" & UserID & """
SQL = SQL & " AND PWD="" & Password & """
因为你的SQL将会是这样:
SELECT * FROM SecurityLevel WHERE UID="1"test" AND PWD="A|&900"
在SQL中,"|"为分割字段用的,显然会出错了。现在提供下面的几个函数 专门用来处理这些头疼的东西:
Function ReplaceStr (TextIn, ByVal SearchStr As String, _
ByVal Replacement As String, _
ByVal CompMode As Integer)
Dim WorkText As String, Pointer As Integer
If IsNull(TextIn) Then
ReplaceStr = Null
Else
WorkText = TextIn
Pointer = InStr(1, WorkText, SearchStr, CompMode)
Do While Pointer > 0
WorkText = Left(WorkText, Pointer - 1) & Replacement & _
Mid(WorkText, Pointer + Len(SearchStr))
Pointer = InStr(Pointer + Len(Replacement), WorkText, SearchStr, CompMode)
Loop
ReplaceStr = WorkText
End If
End Function
Function SQLFixup(TextIn)
SQLFixup = ReplaceStr(TextIn, """, """", 0)
End Function
Function JetSQLFixup(TextIn)
Dim Temp
Temp = ReplaceStr(TextIn, """, """", 0)
JetSQLFixup = ReplaceStr(Temp, "|", "" & chr(124) & "", 0)
End Function
Function FindFirstFixup(TextIn)
Dim Temp
Temp = ReplaceStr(TextIn, """, "" & chr(39) & "", 0)
FindFirstFixup = ReplaceStr(Temp, "|", "" & chr(124) & "", 0)
End Function
有了上面几个函数后,当你在执行一个sql前,请先使用
SQL = "SELECT * FROM SecurityLevel WHERE UID="" & SQLFixup(UserID) & """
SQL = SQL & " AND PWD="" & SQLFixup(Password) & """
--------------------------------------------------------------------------------
发送Email
<%
Dim objCDO
Set objCDO = Server.CreateObject("CDONTS.NewMail")
objCDO.To = "yourname@yourweb.com"
objCDO.From = "yourname@yourweb.com"
objCDO.cc = "yourname@yourweb.com"
Dim txtSubject
txtSubject = "Hello Scott! We were wanting your advice on some programming issues. Please come to Redmond at your earliest convenience for a very fat check!"
objCDO.Subject = "Attn: Scott, we need you!!"
objCDO.Body = txtSubject
objCDO.Send
response.write("ok!")
%>
--------------------------------------------------------------------------------
显示数据库中的字段名称
for each whatever in rs.fields
response.write "<td><b>" & whatever.name & "</B></TD>"
next
--------------------------------------------------------------------------------
GetString的使用方法
strTable = rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
<%Response.Write(strTable)%>
--------------------------------------------------------------------------------
防止表单多次被提交
<% Randomize '初始代随机数种子 num1=rnd() '产生随机数num1
num1=int(26*num1)+65 '修改num1的范围以使其是A-Z范围的Ascii码,以防表单名出错
session("antry")="test"&chr(num1) '产生随机字符串 %>
<form name="test" action="testact.asp" method="post">
你的名字:<input type='text' name='' size=30> '注意本行中使用了随机表单项名
<input type='submit' value='提交'> </form> 表单处理程序testact.asp <%
teststr=request.form(session("antry")) if teststr="" then
response.write "没有填写姓名或重复提交"
'由于用户没有填写名字,或表单被重复提交(标志为session("antry")为空)引起 else
response.write teststr
session("antry")="" '提交成功,清空session("antry"),以防重复提交!! end if %>
--------------------------------------------------------------------------------
session时间设置
Session.TimeOut=5
session.Contents("test")="test"
也可以在IIS中设置:
属性-->主目录-->配置-->应用程序选项-->会话超时
默认下为20分钟,可以改为你所需要的
--------------------------------------------------------------------------------