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

2021 年 1 月 2 日1880

发短消息

加为好友

wangjunping

当前离线

UID
12631
帖子
18
精华
0
积分
18
阅读权限
10
在线时间
57 小时
注册时间
2006-11-21
最后登录
2006-11-21

查看详细资料

Rank: 1

跳转到 »

倒序看帖

打印

tT

wangjunping发表于 2006-11-21 12:16

| 只看该作者

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

face, 如何, physical, request, website

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=vbscript % >

< % 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="测试对话框"% >

< % script language='javascript' >

alert("< %=yourvar% >")

< /script >

  11.有没有办法保护自己的源代码,不给人看到

  答:可以去下载一个微软的windows script encoder,它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有script 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" 。

  8) 找到你的.dll文件然后选择next到完成。

  要删除这个对象,只要选择它的图标,然后选择delete。

  附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。

  16. 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

%>

  17. 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

  18. 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) 添加数据记录:

  

发短消息

加为好友

wangjunping

当前离线

UID
12631
帖子
18
精华
0
积分
18
阅读权限
10
在线时间
57 小时
注册时间
2006-11-21
最后登录
2006-11-21

查看详细资料

Rank: 1

wangjunping发表于 2006-11-21 12:18

| 只看该作者

rs.delete 删除当前记录,但记录指针不会向下移动

  rs.addnew 添加记录到数据表末端

  rs.update 更新数据表记录

  20 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,分述如下:

发短消息

加为好友

wangjunping

当前离线

UID
12631
帖子
18
精华
0
积分
18
阅读权限
10
在线时间
57 小时
注册时间
2006-11-21
最后登录
2006-11-21

查看详细资料

Rank: 1

wangjunping发表于 2006-11-21 12:20

| 只看该作者

asp是active server page的缩写,意为“活动服务器网页”。asp是微软公司开发的代替cgi脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。asp的网页文件的格式是.asp,现在常用于各种动态网站中。 asp是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。这套教程,能有效的帮助你从不懂asp到懂asp,从不会写asp程序到会写asp程序。祝你好运!

  1、内容提要:

  这是本套课程的第六十一讲,get介绍;post方式,后面会讲。

  2、在线学习:

  第一讲;(要想获得好的学习效果,请选择下载到本地。)

  3、下载学习:建议下载到本地观看;

  第一讲;(右键--选择工具下载即可。不能直接使用右键,另存为方式下载)

  flash播放器:flash player v9.0 简体中文版,使用播放器,效果更佳。

  查看全套"asp视频教程">>>>>

发短消息

加为好友

wangjunping

当前离线

UID
12631
帖子
18
精华
0
积分
18
阅读权限
10
在线时间
57 小时
注册时间
2006-11-21
最后登录
2006-11-21

查看详细资料

Rank: 1

wangjunping发表于 2006-11-21 12:35

| 只看该作者

第一步:下载语音聊天室服务器端程序,我们要用的是bchat工作室的bchat server。

  1.进入http://http://www.zjjv.com///页面;

  2.页面右侧的“火热头条”中有“bchat推出10用户免费下载版”字样,我们需要的就是它;

  3.点击“bchat推出10用户免费下载版”的链接后,就到了免费版本下载页面;

  4.在下载页面中下载“windows版本”(其他版本我没用过,我就会使用windows版本);

  5.下载后的文件是bchat.zip,把他解压缩到一个目录中(为了以后你在网站的asp程序使用它,这个目录应当是你网站的某个目录,比如c:\inetpub\wwwroot\);

  6.按上面操作以后,bchat server就被安装到了c:\inetpub\wwwroot\bchat\目录下;

  7.进入c:\inetpub\wwwroot\bchat\目录,可以看到目录下有7个文件以及3个子目录;

  8.把gb子目录下的文件全部拷贝到当前目录(当前目录也就是c:\inetpub\wwwroot\bchat\目录),这样就安装好了具有简体中文界面的语音聊天室。(如果你想安装英文界面,那么拷贝english子目录下的文件到当前目录;如果你想安装繁体中文界面,那么拷贝big5子目录下的文件到当前目录。)

  第二步:建立一个数据库。(尽管不建立数据库也能使用语音聊天室,但是我们要的是功能强点的“asp”语音聊天室,因此要用数据库!)

  1.运行access建立一个空数据库,数据库名字取为bchat.mdb,数据库保存在c:\inetpub\wwwroot\bchat\目录下;

  2.选择“使用设计器创建表”;

  3.添加一个字段。字段名称bname,数据类型选择文本;

  4.再添加一个字段。字段名称bport,数据类型选择数字;

  5.关闭这个(设计器窗口)。点关闭后,提示你“是否保存更改”,选择“是y”,然后让你输入表名称,输入room,并确定。然后access会提示“尚未定义主键”,不用理他,选择“否n”。

  6.现在room表建立好了,但是里面还没有数据,我们手工给他加上几条数据。

  7.双击room表添加数据;bname那里输入“一号房间”(这个是房间名字,你可以随便写),bport那里输入5100(这个是bchat server运行的端口号,你也可以随便写。但是这个端口号不能是系统中已经使用的端口,如果你不熟悉端口,那这里先写上5100,5100一般是空闲的);

  8.再添加一条数据;bname填“二号房间”,bport填5200;

发短消息

加为好友

wangjunping

当前离线

UID
12631
帖子
18
精华
0
积分
18
阅读权限
10
在线时间
57 小时
注册时间
2006-11-21
最后登录
2006-11-21

查看详细资料

Rank: 1

wangjunping发表于 2006-11-21 12:35

| 只看该作者

9.关闭access。

  第三步:写一个asp程序。(程序我都写好了,你把下面的代码拷贝一下就行了,然后把文件保存成index.asp,并保存到c:\inetpub\wwwroot\bchat\目录下。)

  以下内容为程序代码:

  

<%@language="vbscript" codepage="936"%>

<%option explicit%>

<%

'*************************************************************

'程序名称:asp语音聊天室

'程序实现:必须依赖bchat server,下载地址http://http://www.zjjv.com//

'程序设计:madpolice

'完成时间:2003-2-23 17:36:00

'说  明:1.在本人的windows 2000 advanced server上测试通过,

'     不保证在其他环境中能正常运行。

'     2.本人不要求任何版权,但是请保留俺的名字,行不?

'**************************************************************

dim db,connstr,conn,rs,sql,serverip

db="bchat.mdb"

connstr="provider=microsoft.jet.oledb.4.0;data source="&server.mappath(db)

'如果你的服务器采用较老版本access驱动,请用下面连接方法

'connstr="driver={microsoft access driver (*.mdb)};dbq="&server.mappath(db)

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

conn.open connstr

set rs=server.createobject("adodb.recordset")

serverip=request.servervariables("local_addr")

sql="select * from room order by bport"

rs.open sql,conn,1,1

if rs.eof then

rs.close

set rs=nothing

conn.close

set conn=nothing

response.write "数据库中还没有记录呢!"

response.end

end if

if application("bchat_status")<>"running" then

call startbchat()

rs.movefirst

end if

%>

<html>

<head>

<title>语音聊天室</title>

<meta http-equiv="content-type" content="text/html; charset=gb2312">

<script language="javascript">

var wwwhost="<%=request.servervariables("server_name")%>";

function go(pport){

if(validname(document.form1.elements[0])){

document['form1'].action='http://'+wwwhost+':'+pport+'/';

launchchat();

document['form1'].method='post';

document.form1.submit();

}

}

function validname(str1)

{

var s,i,j;

if (str1.value.length <1) {

alert("请输入您的大名,名字不能为空!");

str1.focus();

return false;

}

return true;

}

var focusok=false;

if (navigator.appname == "netscape") {

focusok=true;

}

vers = navigator.appversion;

if (navigator.appname == "microsoft internet explorer") {

pos = vers.lastindexof('.');

vers = vers.substring(pos-1,vers.length);

}

proper_version = parsefloat(vers);

if(proper_version>=5){

focusok=true;

}

function launchchat() {

var chat = window.open("","chat",

  "top=0,left=0,toolbar=no,location=no,directories=no,status=no,

   menubar=no,scrollbars=yes,resizable=yes,width=790,height=530");

if(focusok){

chat.focus();

}

return true;

}

</script>

</head>

<body>

<form action=/ method=post name=form1 target="chat" align="center">

<p align=center>请先输大名:<input type="text" name="user" size="10" maxlength="15" ></p>

<center><div align=center>

<table border=1 width="60%">

<%do while not rs.eof%>

<tr height=20>

<td width="70%">

<li><%=rs("bname")%></td>

<td width="30%" align="center">

<input name="r" onclick="go('<%=rs("bport")%>')" type="button" value="进入">

</td></tr>

<%

rs.movenext

loop

rs.close

set rs=nothing

%>

<input type="hidden" name="pass" value="bchat">

</td></tr>

</table></div></center></form>

</body>

</html>

<%

conn.close

set conn = nothing

sub startbchat()

dim f1,f2,wsh,currentpath,sourcefile,targetfile,tempstring,tempcommand

currentpath=server.mappath(".")

sourcefile=currentpath&"\2000.ini"

do while not rs.eof

targetfile=currentpath&"\"&rs("bport")&".ini"

set f1=server.createobject("adodb.stream")

f1.type=2

f1.mode=3

f1.charset="gb2312"

f1.open

f1.loadfromfile sourcefile

tempstring=f1.readtext

f1.close

set f1=nothing

tempstring=replace(tempstring,"聊圆",rs("bname"))

tempstring=replace(tempstring,"d:\bchat",currentpath)

tempstring=replace(tempstring,"2000",rs("bport"))

tempstring=replace(tempstring,"0.0.0.0",serverip)

set f2=server.createobject("adodb.stream")

f2.type=2

f2.mode=3

f2.charset="gb2312"

f2.open

f2.writetext tempstring

f2.savetofile targetfile,2

f2.close

set f2=nothing

set f1=server.createobject("adodb.stream")

f1.type=2

f1.mode=3

f1.charset="gb2312"

f1.open

f1.loadfromfile currentpath&"\adminpass_2000.txt"

tempstring=f1.readtext

f1.close

set f1=nothing

set f2=server.createobject("adodb.stream")

f2.type=2

f2.mode=3

f2.charset="gb2312"

f2.open

f2.writetext tempstring

f2.savetofile currentpath&"\adminpass_"&rs("bport")&".txt",2

f2.close

set f2=nothing

tempcommand=currentpath&"\bchat.exe "&targetfile

set wsh=server.createobject("wscript.shell")

wsh.run tempcommand,0,false

set wsh=nothing

rs.movenext

loop

application("bchat_status")="running"

end sub

%>

0 0