一份ASP学习笔记(连载)

发表于:2007-06-30来源:作者:点击数: 标签:
ASP学习笔记(一) 1. 突出显示文字 em要显示的文字/em 2. 根据用户选择,做出相应的反应(在客户端实现) SELECT CASE Document.Form1.card.options(selectedIndex).Text Case value1 Option1 Case value2 Option2 ...... END SELECT 3. VB Script 的 Sub函
ASP学习笔记(一)


1. 突出显示文字
<em>要显示的文字</em>
2. 根据用户选择,做出相应的反应(在客户端实现) 
SELECT CASE Document.Form1.card.options(selectedIndex).Text
  Case "value1"
Option1
Case "value2"
Option2
......
END SELECT
3. VBScript 的 Sub函数不返回值
Function 函数将返回一个值
Sub Procedure1()后必须带括号,前可带 Public|Private 来限制该函数的使用范围。如果私有,则只有事先声明该过程的程序能调用。
一例:
Function Prog(Value1)
Prog=Value1*22
end function
x=prog(22)
Response.write(x)
4. 本机DSN 信息存于注册表中,只有当前用户可以使用,
系统DSN可被本机所有用户使用
文件DSN存于一个 .dsn文件中,若将此文件方于网络共享文件夹中,则可被局域网中任一用户访问。
5. Microsoft的数据访问分为:用于本地的DAO,用于网络的ADO,用于远程访问的RDO。
6. SQL的两部分:DDL,DML
7. SELECT 字段若含有空格用[]括起来
8.SELECT ID,XM,M,E,C,M+E+C AS SUM FROM SCORE ORDER BY M+E+C DESC 默认为升序
SELECT TOP 10 * FORM STUDENT WHERE SCORE>=60
9.DELETE FROM student WHERE score<60 ‘’若略WHERE子句则将删除全部记录。
10.UPDATE TABLE1 SET DD=DD+2 WHERE DD LIKE‘02% ‘’表示DD以02打头的记录;SET后多个更新记录之间不用‘’,‘’分隔。
11.INSERT INTO SCORE(ID,XM,SCORE) VALUES (33333,‘’LIU‘’,88)‘’字符型数据需要加单引号
12.SQL="UPDATE system SET maxonlinetime=‘’"&now()&"‘’,maxonline="&Application("c_useronline")) ‘’其中maxonlinetime为日期型数据,maxonline为数值型数据。
13.SELECT A AS AA,B AS BB INTO SS 将建立SS数据表。
14.SELECT * INTO MYBOOK FROM BOOK WHERE WHOSE=MY
15.SET SESSION("Object1")=SERVER.CREATEOBJECT("YourObjectName") ‘’将建立有会话作用域的对象,否则OBJECT只有页作用域。
16.SESSION适用于一个用户;APPLICATION适用于多个用户。
17.exec="insert into guestbook(nickname,content,E_mail) values(‘’"&nickname&"‘’,‘’"&neirong&"‘’,‘’"&mail&"‘’)" ‘’一般格式
18.<a href="javascript:window.history.back();"> 返回上一页 </a> ‘’一般用在提交信息有误或其它需要返回的场合。
20.connstr="DBQ="+server.mappath("lyb.mdb")+";DefaultDir=;DRIVER={Microsoft Aclearcase/" target="_blank" >ccess Driver (*.mdb)};" ‘’连接字符串
21.<BODY onload="window.status=‘’Page is loaded!‘’"> ‘’当页面载入时,状态栏显示结果
22.<script language="javascript">
//从本级窗口,逐级查找其子窗口
if (window.frames!=null) {
for (i=0; i<window.frames.length; i++)
window.alert("Child window "+i+" is named "+window.frames(i).name);
}
</script>
23.去掉连接的下划线
<style type="text/css">
<!--
a:link { text-decoration: none}
-->
</style>
24.SQL中的字段,字段名切勿取如From,等可能为系统保留字的名字,否则会给你带来很大的麻烦。
25.window.location.href="www.microsoft.com" //在javascript,vbscript中可以使用。利用客户端脚本转入别的页面
26.isnull()函数为真表明是无效数据,isempty()为真表明未被初始化,isnothing()只用于对象。
27.onMouseOut="MouseOut(this,‘’#ccccff‘’);" onMouseOver="MouseOver(this, ‘’#C82890‘’);"
onClick="MouseClick(this);" //事件触发的处理。
28.<form method="post" action="member_reg.asp" id=form_username name=form_username LANGUAGE=javascript onsubmit="return form_username_onsubmit()"> 一般的客户端完成数据的校验都是这样来实现的。
29.图片按钮可以这样来实现:
<input type=image src="">
<button type=submit><img src=""></button>
<button type=reset><img src=""></button>
<button type=button><img src=""></button>
如果您不想使用图片,也可以这样写
<button type=submit>提交</button>
30.会员注册,加入记录时姓名的检查(需与28配合使用)
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function form_username_onsubmit() {
return check();
}
function check()
{
var username=document.form_username.username;
if(username.value.length<=0 || username.value.length>8)
{
window.alert("用户名不能为空且长度不能超过8个字符!");
username.focus();
return false;
}
if(HasBug(username.value))
{
window.alert("用户名不能含有不规范字符!");
username.focus();
return false;
}
return true;
}
function HasBug(strtest)
{
var str = new String(strtest)
strMatch = /["‘’]/;
if(str.search(strMatch)!=-1)
return true;
else
return false;
}
//-->
</SCRIPT>
31。会员注册较完备的检查*****************************************************************************************
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function form_reg_onsubmit() {
var form=document.form_reg;
return(check(form));
}
function check(form)
{
if (form.password.value.length<1)
{
alert("密码不能为空!");
form.password.focus();
return (false);
}
if (form.re_password.value!=form.password.value)
{
alert("两次输入的密码不同?");
form.password.focus()
return (false);
}
if(form.youbian.value.length>0)检查邮编
{
if(!check_ecode(form.youbian))
{
return false;
}
return ture;
}
if(!check_mail(form.e_mail.value) && form.e_mail.value.length>0)
{
alert("您输入的E_mail地址有误,请更正?^_^");
form.e_mail.focus();
return(false);
}
if(form.zhuye.value.length>0)
{
if(!check_zhuye(form.zhuye.value))
{
alert("请检查您的主页地址");
form.zhuye.focus();
return false;
}
return (true);
}
}

function check_ecode(code)
{
if (code.value!="")
{
if (check_int(code.value))
{
if (code.value.length>6)
{
alert("邮政编码必须小于等于6位!");
code.focus();
return(false);
}
return true;
}
else
{
alert("邮政编码必须为数字!");
code.focus();
return(false);
}
}
return false;
}
function check_zhuye(page)
{
var checkOK = ".";
var valid=false;
var num=0;
if(page.charAt(page.length-1)==checkOK)
return false;
for(i=0;i<page.length;i++)
{
ch=page.charAt(i);
if(ch==checkOK) num++;
}
if(num>1) return true;
return false;

}
function check_mail(myint)
{
var checkOK = "@";
var checkStr = myint;
var allValid = true;
var decPoints = 0;
var allNum = "";

if(checkStr.charAt(0)==‘’@‘’) return(false);
if(checkStr.charAt(checkStr.length-1)==‘’@‘’)
return(false);
if(checkStr.charAt(checkStr.length-1)==‘’.‘’)
return(false);
a_valid=0; a_count=0;
d_valid=0;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
if (ch == ‘’@‘’) {a_valid=1; a_count++; }
if (ch == ‘’.‘’) {d_valid=1; }
}
if(a_count>1) return(false);
if(a_valid==1 && d_valid==1) return(true); else return(false);
}

function check_int(myint)
{

var checkOK = "0123456789-";
var checkStr = myint;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
allNum += ch;
}
if (!allValid)
{
return (false);
}

return (true);
}
//-->
</script>
32.sub 函数的两种调用方式。形如:call errmsg(msg,"60%")或errmsg msg,"60%"。
33.<em>这里是要突出显示的字体</em>突出显示
34.<FRAMESET frameborder=‘’YES‘’ border=‘’1‘’ bordercolor=‘’#FF0000‘’ framespacing=‘’1‘’ rows=‘’*,*‘’>一般情况下只有当framespacing>0时,设置的颜色才起作用!
35.<td valign=top class="jnfont3" style="letter-spacing:1px;line-height:140%">
36.<table border="0" width="100%" cellspacing="0" cellpadding="2" style="table-layout:fixed;word-break:break-all"> 如果表格单元内的文字超过超过单元长度将强制其换行。
37.action="showcontent<%=z%>.asp">可以这么写.
38.self.location=self.location可能导致IE的崩溃,有时被用做黑客程序。
39.referer=request.servervariables("http_referer")取得的路径将是完整的从HTTP://开始的路径。有时在改变界面风格时使用。如9SeekGBook的改变风格就是这样实现的。当点击某种风格后转到一个设置风格的页面,取得跳转到该页面的文件路径,写入标识当前风格的COOKIES或SESSION,再Response.redirect(referer)。
40.javascript中对脚本错误的屏蔽的一种方法:
function stoperror(){
return true
}
window.onerror=stoperror
41.mid(parentstr,n,3)如果n=0将会发生错误,所以使用此函数应该保证n的值是大于0的整数(很可能出现n在一个循环中改变为0或是当调用子程序时n已被修改为0的情况)。
42.背景音乐的设置:<bgsound src=‘’readonly/cd.mi‘’ loop=‘’1‘’>
43.<script Language=JavaScript>setTimeout(‘’this.location.reload();‘’,3000);</script>"每隔一段时间重新载入本页
44.javascript中eval()将括号中的表达式的结果以NUM形式返回
45.动态生成客户端脚本,并且实现服务器端变量传递到客户端脚本中的一例:
<%
if sd(i)>userline then
Response.Write "<script language=javascript>var getvalue;getvalue="&sd(i+1)&"</script>"
end if
%>
46.一段时间后自动关闭窗口。(一般用在当用户越权访问或其它类似情况下,在某些浏览器中可能不能得到执行)
<script Language="JavaScript">
var tid=null;tid=setTimeout(‘’this.window.close()‘’,100000);
</script>
47.日期文字和时间文字包含在两个井号 (#) 之间。例如:
 < % Const CutoffDate = #6-1-97# % >
48.如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()
49.<meta http-equiv="refresh" content=‘’1; URL=input.asp‘’>‘’本页自动刷新,一般用于聊天室中获取新的数据,或是论坛中自动更新客户端显示数据。
50.获得当前路径strPath = Server.MapPath(".") & "\New.xml"
51.<body onunload="return false" scroll=no style="color:b0d0ff;MARGIN: 0px">
52.if (u==‘’0‘’) {parent.viewsay.frmMain.rows="100%,*";parent.viewsay.frmMain.cols="*";};
else if (u==‘’1‘’){parent.viewsay.frmMain.rows="50%,*";parent.viewsay.frmMain.cols="*";};
通过脚本动态改变框架。
53.location.href=‘’?id=944‘’;一段黑客程序
54.一些关键字的应用实例:
<meta name="author" content="木鱼">
<meta name="e-mail" content="prettyboy83@21cn.com">
<meta name="copyright" content="木鱼">
55.VBS中的常量:vbCrLf换行,相当于chr(13)&chr(10)
56.我发现一个非常奇怪的问题:
function oluserexist(str,rid)
str=str+"$"
if instr(Application("c_roomuserlist"&cstr(rid)),substr)>0 then oluserexist=true
end function
在子过程中改变了str,则调用该函数的主函数(比如说onluserexist(user,4),执行完后,user值也随着变化变成了user+"$" 
58.dim connstr="select * from table" 是错的。DIM后不能赋值。

原文转自:http://www.ltesting.net