ASP知识讲座四_php基础

ASP内置组件

前三讲中,我们主要介绍了ASP提供的四大内置对象:
l Response对象:向浏览器发送信息。
l Request对象:访问从浏览器发送到服务器的信息(如获取表单数据)。
l Session对象:存储、读取特定用户对话信息。
l Application对象:存储、读取所有用户共享的应用程序信息。
此外还有Server对象和ObjectContext对象我们将在以后的实例中学习(提示:其实不经意之间你已经可以利用所学知识编写网上聊天室了)。本讲的内容是使用ASP的ActiveX Server Components(组件)。

一、 Browser Capabilities Component(浏览器能力组件): 
我们知道,不同的浏览器也许支持不同的功能,如有些浏览器支持框架,有些不支持。利用这个组件,可以检查浏览器的能力,使你的网页争对不同的浏览器显示不同的页面(如对不支持Frame的浏览器显示不含Frame的网页)。该组件的使用很简单,需注意的是,要正确使用该组件,必须保证Browscap.ini文件是最新的(其实每一个浏览器及其特性都列在这个文件中,自己打开看看就明白了),否则结果可能相去甚远,如Win98第二版所带的IE5.0,在下例中显示为Netscape。这个文件一般位于Web服务器的"\Winnt\System32\InetSrv"下,最新的版本可去yun_qi_img/468x60_1.gif 广告图片所在位置,也可为本地图形文件
yun_qi_img/www.163.com
http://www.sina.com.cn/
新浪网
30
http://61.139.77.73/images/canon.gif 也可以使用本地图片,如../images/flag.gif
http://www.canon.com.cn/
佳能
50
本例中一共有三个图片(图片大小468X60)及链接,每个链接的描述占四行,实际使用时,你可如法炮制,增加更多的图片。
<% 'wuf26.asp
URL = Request.QueryString("url")
Response.Redirect(URL) 
%>
wuf26.asp是一个最简单的处理程序,你可根据实际需要在这里加入更多的代码。
运行一下,原来这个组件的使用也很简单,你要做的就是得到自己的AdrSet.txt文件。利用这个组件,你甚至可以设计一个现在已非常时髦的广告交换主页。

四、 Content Linking组件
显然这个组件与链接有关系,如果想马上知道这个组件的具体用途,恐怕还操之过急,不妨先引用一个经典的例子:假设在网上阅读一本书,你对以下这些链接一定不会陌生:第1章、第2章、…、上一章、下一章(或前一页、后一页)等等。我们现在要做的就是如何在这些链接之间方便快速地设置跳转。
首先建一个链接列表文本文件,如urllist.txt
wuf23.asp 第1章:文件操作(File Access组件)
wuf28.asp 第2章:Content Linking组件使用示例
wuf22.asp 第3章:浏览器能力组件
链接url地址和描述之间用 Tab 键分隔。下面wuf27.asp用来列出urllist.txt中的所有链接。
<% @LANGUAGE = VBScript %>
<% Option Explicit %>
<html><head><title>Content Linking组件使用</title></head>
<body> 
<h2>目录列表: 注意核心链接是第2章, 你一定要点击它</h2>
<ul>
<%
Dim NextLink, Count
'建立 Content Linking 组件
Set NextLink = Server.CreateObject("MSWC.NextLink") 

'获取文件 urllist.txt 中链接数目
Count = NextLink.GetListCount("urllist.txt")

Dim url, Dscr, I
For I = 1 To Count
url = NextLink.GetNthURL ("urllist.txt", I) '取得超链接
Dscr = NextLink.GetNthDescription ("urllist.txt", I) '取得文字描述
Response.Write "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
Next
%> 
</ul></body></html>
然后,以wuf28.asp为例说明如何自动实现上一章和下一章跳转。
<% @LANGUAGE = VBScript %>
<% Option Explicit %>
<html><head><title>这个链接要注意</title></head>
<body> 

<p>这里是第 2 章的正文............</p>

<% '每个文件都包含下面这句, 就实现了自动链接%>
<!--#include file="wuf29.asp"-->
</body></html>
这里最后一句加上去就可以实现自动跳转,核心在wuf29.asp中。
<%
Dim NextLink, rank
Set NextLink = Server.CreateObject ("MSWC.NextLink")
'当前的链接在 urllist.txt 中位于第几个
rank = NextLink.GetListIndex ("urllist.txt")
Response.Write "<hr>"

If (rank > 1) Then 'rank = 1 不存在前一页
Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>上一章</a>|"
End If 

If (rank < NextLink.GetListCount("urllist.txt")) Then 'rank在最后, 则没有下一页
Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>下一章</a>|"
End If
%>
运行这个例子后,你马上能真正理解这个组件的作用,简而言之,就是不需要在每页都写一个"上一章"、"下一章",完全通过wuf29.asp一下搞定,是不是很方便?!不然你要是手工修改链接的话,不是太麻烦了几点吗?
现在你应该明白了,网上大量的免费计数器、免费留言板、免费聊天室、广告交换网等等……,其原理都不过如此,大可不必崇拜。

时间: 2024-08-02 10:39:30

ASP知识讲座四_php基础的相关文章

PHP易混淆知识整理笔记_php基础

1.echo和print的区别 PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1. $r = print "Hello World"; 这意味着print可用在一些复杂的表达式中,而echo则不行.但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句. 2.i

聊天室php&amp;amp;mysql(四)_php基础

第四个页面 name="index.php" <? include "../signup/mysql.php"; header("Expires: Sun, 28 Dec 1997 09:32:45 GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); header("Co

社区(php&amp;amp;&amp;amp;mysql)四_php基础

echo "<br>";     echo "<TABLE width=85% border=0 cellPadding=0 cellSpacing=1 align=center bgcolor='#6CA6CD'>";       echo "<tr><td>";       echo "<TABLE width=100% cellPadding=1 cellSpacing=1 b

用PHP制作静态网站的模板框架(四)_php基础

静态网站的模板框架 首先,我们象前面一样为所有的页面公用元素以及页面整体布局编写模板文件:然后从所有的页面删除公共部分,只留下页面内容:接下来再在每个页面中加上三行PHP代码,如下所示: <?php <!-- home.php --> <?php require('prepend.php'); ?> <?php pageStart('Home'); ?> <h1>你好</h1> <p>欢迎访问</p> <img

用PHP和ACCESS写聊天室(四)_php基础

代码如下: <?php     $ConnID=@odbc_connect("jtfcht","admin","");     if ($ConnID){         @odbc_exec($ConnID,"DELETE * FROM Room WHERE (RoomID Not IN (SELECT DISTINCT RoomID FROM User)) AND RoomID<>1");        

我的论坛源代码(四)_php基础

POST.PHP发布主题的页面,发布的信息提交到OKEY.PHP中去处理. <html> <head> <title>论坛发帖</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <STYLE type=text/css> P {FONT-FAMILY: normal; FONT-SIZE: 9

一个程序下载的管理程序(四)_php基础

//管理程序chang.php源代码如下: <? session_start() ?> <? if($session_power==""||$session_power<1) { header("location: ../message.php?redirect=default.php&message=你不是理员"); break; }?> <?require ("../opendata.php");?

PHP.MVC的模板标签系统(四)_php基础

页面布局     在这个单元中我们将看到如何使用模板标签系统构造一个标准的模板页面.这个例子我们使用了一个简单的HTML页面布局,请看下图:     这个页面有多个标准单元组成,就像页面设计者和开发者熟悉的那样.这个页面的主体由3个包含的单元组成:页眉,页内容主体和页脚.我们现在就看看这些单元并且了解如何使用模板标签系统来实现. 页主体     下面的代码单元显示的是主体:The Page Body Layout  1<@ saleMonth    = data.getValueBean('SA

杏林同学录(四)_php基础

个人管理:    班级通讯录:class/address.php <? session_start(); // 开始session if(!session_is_registered("userregister")||($userregister==""))//检查是否注册,如userregister未注册或session为空值,重新注册. { echo "<a href='../index.php'>请重新注册<BR>&qu