新闻发布系统(新闻发布系统代码)

更新时间:2023-03-01 17:32:30 阅读: 评论:0

目 录

第一章 诸论

第一节 开发工具的选用及介绍

第二节 ASP技术访问WEB数据库

第二章 系统分析与总体设计

第一节 系统功能描述

第二节 系统功能模块划分

第三节 系统流程分析

第三章 数据库结构设计与实现

第一节 创建数据库

第二节 数据库逻辑结构设计

第三节 创建表的脚本文件

第四章 目录结构与通用模块

第一节 目录结构

第二节 通用模块

第五章 系统主界面与登录程序设计

第一节 设计主界面

第二节 登录程序设计

第三节 设计管理界面

第六章 新闻类别管理模块设计

第一节 设计新闻类别管理界面

第二节 添加新闻类别

第三节 修改新闻类别

第四节 删除新闻类别

第七章 新闻发布管理模块设计

第一节 添加新闻

第二节 修改新闻

第三节 删除新闻

第四节 新闻查询管理

第八章 调试与安装

第一节 安装IIS

第二节 ASP硬件要求

结束语

参 考 文 献

后 记

摘要

【摘要】我们从建站的实际情况出发,经过对有关网站新闻发布事项的一番考察和分析,确立了新闻发布系统的具体实现功能。并阐述系统的结构设计和功能设计,实现新闻的分类显示,最近新闻的提示,新闻滚动功能等。经过授权的用户可以通过Web浏览器,以人机交互式的客户端程序实现对学校新闻的发布、管理、实时的进行行为统计和记录。本系统是学校网站的一个子系统,具有很好的外部接口,能够很好的配合站点的其它子系统服务于网站的新闻发布.该系统是一个基于新闻发布和内容管理的全站管理系统;基于B/S模式WEBMIS系统,本系统可以将杂乱无章的信息(包括文字、图片和影音)经过组织,合理而且有序地呈现在大家面前。简单的说,新闻发布系统就是充当一个网络新闻媒介的功能。

主要实现对新闻的分类,审核,发布,模拟了一般新闻媒介的发布的过程

【Abstract】 we embark from the station construction actual situation,pass through to a related website news issue item inspection and theanalysis, has established the news issue system concrete realizationfunction. And the elaboration system structural design and thefunctional design, realize the news classification to demonstratethat, the recent news prompt, the news rolls the function and so on.After the authorized ur may through the Web browr, by theman-machine interactive customer end procedure realization to theschool news issue, the management, real-time carry on the behaviorstatistics and the record. This system is a school website sub-system, has the very good exterior connection, can the very goodcoordinate stand other subsystems rve the website news issue This system is bad on the news issue and the content managemententire station management system management system; Bad on B/S thepattern WEBMIS system, this system may the chaotic information(including writing, picture and video and music) the processorganization, reasonably has the foreword to prent in front ofeverybody. Simple saying, the news issued the system is acts as a NetNews medium the function, the main realization to the newsclassification, the verification, the issue, has simulated the commonnews medium news issue process

前言

在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。

由于时间有限,加之信息系统开发经验的缺少和编程能力的有限,所以本系统难免存在各种各样的缺点。敬请指导老师能够提出批评和宝贵意见,也希望各位读者提出宝贵意见并进行指正,谢谢!

第一章 诸论第一节 开发工具的选用及介绍

1. ASP的优势:Active Server Pages:“动态服务器网页”,一般简称为“ASP”,ASP之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的HTML格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE 或Netscape)都可以正确地获得ASP的“执行”结果,并且将这ASP执行的结果直接在浏览器中“浏览”,不像VBScript或 JavaScript是在客户端(Client)的浏览器上执行,若使用VBScript来设计程序,客户端(Client)在IE浏览器中可以显示程序执行的结果,可是,客户端(Client)若使用Netscape浏览器就无法显示VBScript的执行结果。 2.ASP的特点:任何开发工具皆可发展ASP。只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPage Express、 FrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。

3.通吃各家浏览由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。 4.语言相容性高:ASP与所有的ActiveX Script语言都相容,除了可结合HTML,VBScript、Java Script、Active X服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(Third Party)所提供的语言。隐密安全性高。如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是因杰ASP程序先于网站服务(Web Server)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。 5.易于操控数据库:ASP可以轻易地通过ODBC(Open Databa Connectivity)驱动程序连接各种不同的数据库,例如:Acess、Foxpro、dBa、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel” 文件当成数据库用。 6.面向对象学习容易:ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Respon、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。 ASP的六大内部对象Request、Respon、Server、Session、Application、ObjectContext 从客户端取得信息将信息送给客户端提供一些Web服务器工具储存在一个Session内的用户信息,该信息仅可被该用户访问在一个ASP-Application中让不同的客户端共享信息可以用来配合Microsoft Transaction 服务器进行分布式事务处理。 所以我选择了ASP结合Frontpage架构网站。在此期间本人将使用Macromedia Dreamweaver MX 2004进行ASP页面的编码,并使用IIS6.0对页面进行调试。

第二节 ASP技术访问WEB数据库

一.访问WEB数据库的多种方案

目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:

(1).公共网关接口CGI(Common Gateway Interface)

CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。

(2). INTERNET数据库连接器IDC(Internet Databa Connector)。

IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。

(3). 先进数据库连接器ADC(Advance Databa Connector)

ADC提供了ActiveX Control来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。

(4). JAVA/JDBC语言编程

JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。

(5). 动态服务器页面ASP(Active Server Page)

ASP是微软公司最新推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的最佳选择。

二.ASP简介

1.ASP访问数据库的原理

ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。

当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。

  由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。

  2.ASP页面的结构:

  ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成:

  (1) 标准的HTML标记:所有的HTML标记均可使用。

  (2) ASP语法命令:位于<% %> 标签内的ASP代码。

  (3) 服务器端的include语句:可用#include语句调入其它ASP代码,增强了编程的灵活性。

(4) 脚本语言:ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可安装其它脚本语言,如Perl、Rexx等。

3.ASP的运行环境

  目前ASP可运行在三种环境下。

  (1) WINDOWS NT rver 4.0运行IIS 3.0(Internet Information Server)以上。

  (2) WINDOWS NT workstation 4.0运行Peer Web Server 3.0以上。

  (3) WINDOWS 95/98运行PWS(Personal Web Server)。

  其中以NT rver上的IIS功能最强,提供了对ASP的全面支持,是创建高速、稳定的ASP主页的最佳选择。

  4.ASP的内建对象

  ASP提供了六个内建对象,供用户直接调用:

  (1) Application对象:负责管理所有会话信息,可用来在指定的应用程序的所有用户之间共享信息。

  (2) Session对象:存贮特定用户的会话信息,只被该用户访问,当用户在不同WEB页面跳转时,Session中的变量在用户整个会话过程中一直保存。Session对象需cookie支持。

(3) Request对象:从用户端取得信息传递给服务器,是ASP读取用户输入的主要方法。

  (4) Respon对象:服务器将输出内容发送到用户端。

  (5) Server对象:提供对服务器有关方法和属性的访问。

  (6) Object Context对象:IIS 4.0新增的对象,用来进行事务处理。此项功能需得到MTS(Microsoft Transcation Server)管理的支持。

  5. ASP的主要内置组件:

  (1) Ad Rotator组件:用来按指定计划在同一页上自动轮换显示广告,用于WWW上日益重要的广告服务。

  (2) Browr Capabilities组件:确定访问WEB站点的用户浏览器的功能数据,包括类型、性能、版本等。

  (3) Databa Access组件:提供ADO (ActiveX Data Objects)来访问支持ODBC的数据库。

  (4) File Access组件:提供对服务器端文件的读写功能。

  (5) Content Linking组件:生成WEB页内容列表,并将各页顺序连接,用于制作导航条。

  此外,还可安装Myinfo、Counters、Content Rotator、Page Count等组件,用户也可自行编制Actiive组件,以提高系统的实用性。

  6. Databa Access组件ADO

  WWW上很重要的应用是访问WEB数据库,用ASP访问WEB数据库时,必须使用ADO组件,ADO是ASP内置的ActiveX服务器组件(ActiveX Server Component),通过在WEB服务器上设置ODBC和OLEDB可连接多种数据库:如SYBASE、ORACLE、INFORMIX、SQL SERVER、ACCESS、VFP等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。

  ADO组件主要提供了以下七个对象和四个集合来访问数据库。

  (1) Connection对象:建立与后台数据库的连接。

  (2) Command对象:执行SQL指令,访问数据库。

  (3) Parameters对象和Parameters集合:为Command对象提供数据和参数。

  (4) RecordSet对象:存放访问数据库后的数据信息,是最经常使用的对象。

  (5) Field对象和Field集合:提供对RecordSet中当前记录的各个字段进行访问的功能。

  (6) Property对象和Properties集合:提供有关信息,供Connection、Command、RecordSet、Field对象使用。

(7) Error对象和Errors集合:提供访问数据库时的错误信息。

第二章 系统分析与总体设计

很多网站都提供新闻栏目,例如搜狐、新浪等著名网站的新闻专栏。许多企业和个人网站也需要定期发布一些关于企业或网站的新闻。因为网络中新闻发布的频率非常高,如果使用静态网页作为新闻页面,则维护工作将非常繁琐,管理员每天需要制作大量的网页,从而浪费很多时间和精力。使用新闻发布及管理系统可以使新闻发布和管理变得很轻松,管理员只需设置标题、内容和图片等新闻就可以了,系统将自动生成对应的网页。本文将对新闻发布及管理系统进行系统分析与总体设计。

第一节 系统功能描述

新闻发布及管理系统包括新闻类别管理、新闻发布管理、图片处理、新闻查询、网友评论和用户管理等模块。具体描述如下:

1.新闻类别管理:

(1)新闻类别的录入,包括类别编号和类别名称等信息;

(2)新闻类别的修改;

(3)新闻类别的删除;

(4)新闻类别的查询。

2.新闻发布管理:

(1)基本新闻信息的录入,包括新闻标题、新闻内容和所属类别等;

(2)基本新闻信息的修改;

(3)基本新闻信息的删除;

3.图片处理模块:

(1)选择图片文件;

(2)上传图片文件;

(3)存储图片新闻;

(4)修改新闻图片;

(5)删除新闻图片;

(6)在网页中浏览新闻图片。

4.新闻查询模块:

(1)按照新闻类别分页显示新闻; -

(2)按照日期分页显示新闻。

5.网友留言模块:

(1)网友对某条新闻发表评论;

(2)管理员可以删除新闻评论。

6.系统用户管理功能:

(1)系统用户信息的录入,包括用户名和密码等信息;

(2)系统用户信息的修改;

(3)系统用户信息的删除。

第二节 系统功能模块划分

从功能描述的内容可以看到,本实例可以实现6个完整的功能。我们根据这些功能,设计出系统的功能模块,如图1所示。

图1 新闻发布及管理系统功能模块示意图

新闻发布及管理系统的功能模块之间的关系如图2所示。

图2 新闻发布及管理系统的功能模块关系图

在本系统中,用户管理模块的功能比较简单。在系统初始化时,有一个默认的“系统管理员”用户Admin,由程序设计人员手动地添加到数据库中。Admin用户可以创建用户、修改和删除用户;普通用户则只能修改自己的用户名和密码。

用户管理功能模块的关系如图3所示。

图3 用户管理功能模块的关系图

第三节 系统流程分析

为了使读者进一步了解本实例系统的设计,本小节将对系统进行流程分析。多用户系统的工作流程都是从用户登录模块开始,对用户的身份进行认证。身份认证可以分为以下两个过程:

(1)确认用户是否是有效的系统用户。

(2)确定用户的类型。

第1个过程决定用户能否进入系统。第2个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。

本系统分为前台系统和后台系统两个部分。前台系统不需要进行身份认证,任何人都可以通过浏览器阅读已经发布的新闻、发表网友评论。

后台系统的流程分析如图4所示。Admin用户拥有所有的权限,普通用户只能对自己发布的新闻进行管理,包括修改新闻内容、删除新闻和删除网友评论。

图4 后台系统的流程分析

第三章 数据库结构设计与实现

这一章将介绍系统的数据库表结构和创建表的脚本。

第一节 创建数据库

首先创建一个数据库news,用来保存本系统的所有数据。创建数据库的脚本代码如下:

CREATE DATABASE news

GO

可以在SQL查询分析器中执行该语句,创建数据库。

第二节 数据库逻辑结构设计

本系统定义的数据库中包含以下4个表:新闻类别表:Category、新闻基本信息表:News、网友评论信息表:Discuss和用户信息表:urs。

下面分别介绍这些表的结构。

1.新闻类别表Category

新闻类别表Category用来保存新闻类别数据,结构如表1所示。

表1 表Category的结构

编号

字段名称

数据结构

说明

1

CateId

int

新闻类别编号

2

CateName

varchar (50)

新闻类别名称

在设计数据库结构时,很多表都需要设计一个整型字段作为标识列,这几乎已经成为惯例,例如表Category中的CateId字段。所谓标识列,就是可以惟一标识一行记录的列,在表中不会存在两条标识列相同的记录。如果其他表需要引用表Category中的数据,则在表中添加一个CateId字段就可以了。有的程序设计人员习惯于直接使用名称字段作为标识列,例如表Category中的CateName字段。这样,如果修改CateName字段的值,就需要同时修改其他所有表的相应字段的值,从而造成不必要的麻烦。在系统中,CateId字段对于用户来说是透明的,用户感觉不到它的存在,也无法对其进行修改。

2.基本新闻表News

基本新闻表News用来保存网上新闻的基本信息,结构如表2所示。

表2表News的结构

编号

字段名称

数据结构

说明

1

Id

int

新闻编号

2

Title

varchar(100)

新闻标题

3

Content

text

新闻内容

4

PostTime

datetime

提交时间

5

Poster

varchar(50)

提交人

6

CateId

int

新闻类别编号

7

Attpic

bit

是否有图片标记(0没有;1有)

8

Readcount

int

阅读次数

在SQL Server 2000中,可以使用char、varchar和text等3种数据类型存储非Unicode字符数据。char和varchar只能存储最多8000个字符,其中char用于存储固定长度的字符数据,varchar用于存储可变长度的字符数据。如果需要存储的数据很大,则可以使用text数据类型,例如表News中的Content字符,因为新闻内容的数据量通常会超过8000个字符。text数据类型也是可变长度的,最多可为2147483647个字符。

3.网友评论信息表Discuss

网友评论信息表Discuss用来保存网友对新闻的评论信息,结构如表3所示。

表3 表Discuss的结构

编号

字段名称

数据结构

说明

1

id

int

评论编号

2

UrId

varchar(20)

评论人名称

3

Posttime

sinaildatetime

提交时间

4

Content

varchar(4000)

评论内容

5

Newsld

int

新闻编号

在SQL Server 2000中,可以使用datetime和smalldatetime两种数据类型存储日期时间数据。datetime数据类型用于存储从1753年1月1日到9999年12月31日的日期和时间数据,精确到3.33ms;smalldatetime数据类型用于存储从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。有些程序员习惯于使用datetime数据类型存储日期时间数据,其实在精确度要求不高的情况下,使用smalldatetime数据类型是足够了。

4..用户信息表Urs

用户信息表Urs用来保存用户的基本信息,结构如表8.4所示。

编号

字段名称

数据结构

说明

1

UrId

int

用户ID号 。

2

UrName

varchar(50)

用户名

3

UrPwd

varcahr(50)

密码

4

Ename

varchar(50)

用户姓名

5

Email

varchar(50)

电子邮箱

第三节 创建表的脚本文件

本节将介绍创建表的脚本文件,可以在“查询分析器”中执行这些脚本,在数据库news中创建表。

1.创建表Category

创建表category的脚本文件为Category.sql,它的代码如下:

USE news

GO

CREATE TABLE Category

(

CateId Int IDENTITY PRIMARY KEY,

CateName Varchar(50) NOT NULL

)

GO

在使用CREATE TABLE指令创建表时,应该注意使用PRIMARY KEY关键字定义表的主键。表中每一行的主键都有惟一值,可以使用主键惟一地标识一行数据。

2.创建表News

创建表News的脚本文件为News.sql,它的代码如下:

USE news

GO

CREATE TABLE News

(

Id Int IDENTITY PRIMARY KEY,

Title Varchar(100) NOT NULL,

Content Text,

PostTime Datetime,

Poster Varchar(50),

CateId Int,

Attpic Int DEFAULT 0,

ReadCount Int DEFAULT 0

)

GO

在使用CREATE TABLE指令创建表时,应该注意使用NOT NULL关键字定义表的未空字段。使用NOT NULL定义的字段将不允许为空,这样就可以避免表中出现无效的数据,影响系统运行。例如,表News中的Title字段将不能为空,否则在新闻列表中将出现一个空行。

在使用CREATE TABLE指令创建表时,使用DEFAULT关键字可以字义字段的默认值,例如表News中,Attpic和ReadCount字段的默认值为0。

3.创建表Discuss

创建表Discuss的脚本文件为Discuss.sql,它的代码如下:

USE news

GO

CREATE TABLE Discuss

(

Id Int IDENTITY PRIMARY KEY,

UrId Varchar(20),

Posttime Smalldatetime,

Content Varchar(4000),

NewsId Int

)

GO

在使用CREATE TABLE指令创建表时,通常可以使用IDENTITY关键字与PRIMARY KEY关键字相结合,创建标识字段。每次增加新记录时,标识字段自动递增。程序员在编写程序的过程申,无需考虑标识字段的值。

4.创建表Urs

创建表Urs的脚本文件为Urs.sql,它的代码如下:

USE news

GO

CREATE TABLE Urs

( UrId Int Primary Key IDENTITY,

UrName Varchar(50) NOT NULL,

UrPwd Varchar(50) NOT NULL,

Ename Varchar(50),

Email Varchar(50)

)

GO

INSERT INTO Urs (UrName, UrPwd, Ename, Email) VALUES('Admin', '111111', '', '')

GO

在创建表urs的同时,将默认的用户Admin插入到表中,默认的密码为“llllll”。

在执行这些脚本之前,请确定数据库news已经存在,否则会产生错误。如果要创建的表已经存在,则需要先将表删除。

第四章 目录结构与通用模块第一节 目录结构

在运行实例时,需要将web目录复制到IIS/PWS的根目录下,例如

目录下包含下面两个子目录:

images用于存储上传的新闻图片;

pic用于存储网页中的图片文件;

其他ASP和HTM文件都保存在web目录下。

第二节 通用模块

本实例中包含一些通用模块,这些模块以文件的形式保存,可以在其他文件中使用#include语句包含这些模块,使用其中定义的功能。

1.ConnDB.asp

ConnDB.asp的功能是实现到数据库的连接,因为在很多网页中都有连接数据库的操作,所以把它保存在文件ConnDB.asp中,这样可以避免重复编程。ConnDB.asp的代码如下:

<%

dim Conn

dim ConnStr

t Conn=rver.createobject("adodb.connection")ConnStr="driver={SQL Server};rver=(local);UID=sa;PWD=yourpassword;Databa=news"

Conn.Open ConnStr

%>

在文件中引用此文件作为头文件就可以访问数据库,代码如下:

<!--#include File="ConnDB.asp"-->

2.IsAdmin.asp

因为本实例中有些功能只有Admin用户才有权限使用,所以在进入这些网页之前,需要判断用户是否是Admin。IsAdmin.asp的功能是判断当前用户是否是Admin,如果不是,则中断执行;如果是,则不执行任何操作,直接进入包含它的网页。

IsAdmin.asp的代码如下:

<%

If Session("UrName") <> "Admin" Then

Respon.Write("不是Admin用户,没有此权限")

Respon.End

End If

%>

在文件中引用此文件作为头文件,代码如下:

<!--#include File="IsAdmin.asp"-->

3.IsAuthor.asp

在修改和删除新闻时,除了Admin用户拥有所有权限外,其他用户只能修改自己创建的新闻。所以在修改和删除新闻时,需要判断当前用户是否是Admin或指定新闻的作者。

IsAuthor.asp可以实现此功能,代码如下:

<%

If Session("UrName") <> "Admin" Then

NewsId = Request("Id")

'根据新闻编号读取新闻信息

t rsNews = Server.CreateObject("ADODB.RecordSet")

sql = "SELECT * FROM News WHERE Id=" & Trim(NewsId)

t rsNews=Conn.Execute(sql)

Set Rs=conn.Execute(sql)

If rsNews.EOF Then

Respon.Write "指定新闻不存在"

Respon.End

El

'判断用户权限,是否可以维护新闻,管理员可以编辑所有新闻,编辑者只能修改自己的新闻

If rsNews("Poster") <> Session("UrName") Then

Respon.Write "不是Admin或新闻的作者,无权修改!"

Respon.End

End If

End If

End If

%>

如果当前用户是Admin,则IsAuthor.asp不做任何操作;否则,程序将根据参数Id读取新闻信息,并将Poster字段的值与当前用户名进行比较。在两种情况下,IsAuthor.asp将阻止程序继续执行:

(1)指定新闻不存在;

(2)当前用户不是指定新闻的作者。

使用Respon.End可以结束网页的输出。

在文件中引用此文件作为头文件,代码如下:

<!--#include File=" IsAuthor.asp"-->

4.template.asp

在添加和修改新闻内容时,需要对字体、字号、颜色和排列位置等属性进行设置。Template.asp可以实现这些功能。

Template.asp的设计界面如图5所示。

图5 Template.asp的设计界面

在使用template.asp时,设置指定的选项,将会在新闻内容中生成相应的HTML代码。例如,选中正文abc,然后选择“楷体”、“1号字”,将生成如下代码:

<font[space]face=楷体_GB2312><font[space]size=1>abc</font></font>

[space]是自定义的符号,因为空格在转换成HTML格式时,将被替换为“ ;”,所以这里使用[space]表示空格。在显示新闻内容时,程序将会自动将[space]转换为空格。

因为template.asp的代码较多,这里仅以字体控制的代码为例说明。相关代码如下:

字体 <SELECT onChange="var c=this.options[this.lectedIndex].value; if(lection.createRange().text!='')

{lection.createRange().text='<font[space]face='+c+'>'+lection.createRange().text+'</font>'}el

{myform.txtcontent.value = '<font[space]face='+c+'>'+myform.txtcontent.value+'</font>'}" name=font style='FONT-SIZE: 9pt'>

<OPTION lected value=宋体>宋体</OPTION>

<OPTION value=楷体_GB2312>楷体</OPTION>

<OPTION value=新宋体>新宋体</OPTION>

<OPTION value=黑体>黑体</OPTION>

<OPTION value=隶书>隶书</OPTION>

<OPTION value="Andale Mono">Andale Mono</OPTION>

<OPTION value=Arial>Arial</OPTION>

<OPTION value="Arial Black">Arial Black</OPTION>

<OPTION value="Book Antiqua">Book Antiqua</OPTION>

<OPTION value="Century Gothic">Century Gothic</OPTION>

<OPTION value="Comic Sans MS">Comic Sans MS</OPTION>

<OPTION value="Courier New">Courier New</OPTION>

<OPTION value=Georgia>Georgia</OPTION>

<OPTION value=Impact>Impact</OPTION>

<OPTION value=Tahoma>Tahoma</OPTION>

<OPTION value="Times New Roman">Times New Roman</OPTION>

<OPTION value="Trebuchet MS">Trebuchet MS</OPTION>

<OPTION value="Script MT Bold">Script MT Bold</OPTION>

<OPTION value=Stencil>Stencil</OPTION>

<OPTION value=Verdana>Verdana</OPTION>

<OPTION value="Lucida Console">Lucida Console</OPTION></SELECT>

在下拉菜单中,定义了系统支持的字体名称,下拉菜单的值与字体名称相同。

当下拉菜单的选择发生变化时,将触发onChange事件,程序中直接定义了对应的JavaScript代码。This表示字体下拉菜单,this.lectedlndex表示当前选择的菜单项目索引,This.options[this.lectedlndex].value则表示选择下拉菜单的值,程序将其保存变量C中。

Selection.createRangeO.text表示当前选择字符的内容,如果它不为空,则将其替换为如下代码:

lection.createRange().text='<font[space]face='+c+'>'+lection.createRange().text+'</font>'

也就是在它的两侧添加字体标识<font>和</font>。

如果没有选择字符,则在输入新闻内容的文本域中直接加入字体标识,用户可以在<font>和</font>之问添加相应的文字,代码如下:

myform.txtcontent.value='<font[space]face='+c+'>'+myform.txtcontent.value+'</font>

在添加和修改新闻内容的网页中,必须将表单定义为myform,输入新闻内容的滚动文本框定义为txtcontent,否则此功能将无法实现。

第五章 系统主界面与登录程序设计第一节 设计主界面

本主界面为default.asp,它的功能是显示新闻类别和每个类别中的10条新闻,并提供进入管理界面(index.asp)的链接。

录入新闻类别和新闻内容后,default.asp的界面如图5-6所示。

图5-6 default.asp的界面

下面介绍default.asp的主要代码。

1.显示新闻类别链接

default.asp将新闻按照分类显示,每个新闻类别只显示最新的10条新闻。如果新闻类别

较多,则网页会被拉长,给用户阅读带来不便。为了解决这个问题,本实例使用书签来定义新

闻类别的位置,书签格式为#a<类别编号>。例如,类别编号为1的新闻类别的书签名称为#al。下面的代码将在网页中生成所有新闻类别的链接,每个链接都指相应新闻类别的书签。这样,用户就可以通过单击链接直达新闻类别了。

<%

'=====显示所有新闻类别供点击,点击不同类别显示该类别的新闻=====

'按顺序读取所有新闻类别,保存在记录集rsCate中

sql = "SELECT * FROM Category ORDER BY CateId"

Set rsCate = conn.Execute(sql)

'显示所有新闻类别链接

Do While Not rsCate.EOF

stitle = rsCate("CateName")

cid = rsCate("CateId")

'每个新闻类别标题被定义为一个书签,名为 #a类别编号

%>

<a href="#a<%=cid%>"><font style='TEXT-DECORATION: none;color:black'><%=stitle%></font></a> |

<%

rsCate.MoveNext

Loop

%>

如果网页中显示的内容较多,通常需要通过定义书签的方法使用户快速到达指定的位置。书签是网页中被标记的位置或被标记的选中文本。在FrontPage中选择“插入”/“书签”菜单项,可以在指定位置插入书签。在本例中,因为书签位置是动态变化的,所以需要使用代码定义,方法如下:

<a name=书签名></a>

2.“新闻管理”链接

系统管理员Admin或其他用户可以通过“新闻管理”链接进入新闻管理页面index.asp

<a href="index.asp"><font color=red style='TEXT-DECORATION: none'>新闻管理</font></a>

3.显示各新闻类别中的最新新闻

default.asp的主要内容是显示新闻类别中的最新10条新闻,并将3天内的新闻使用new图片标记。当然,如果新闻的内容经常更新,则可以将3天改为1天。

这部分代码如下:

<%

'=====显示所有新闻类别供点击,点击不同类别显示该类别的新闻=====

'按顺序读取所有新闻类别,保存在记录集rsCate中

sql = "SELECT * FROM Category ORDER BY CateId"

Set rsCate = conn.Execute(sql)

'显示所有新闻类别链接

Do While Not rsCate.EOF

stitle = rsCate("CateName")

cid = rsCate("CateId")

'每个新闻类别标题被定义为一个书签,名为 #a类别编号

%>

<a href="#a<%=cid%>"><font style='TEXT-DECORATION: none;color:black'><%=stitle%></font></a> |

<%

rsCate.MoveNext

Loop

%>

<a href='arch.asp'><font color=red>新闻查询</font></a>

| <a href="index.asp"><font color=red style='TEXT-DECORATION: none'>新闻管理</font></a>

</div>

<table align="center" width="100%" cellspacing="0" cellpadding="0" border="0">

<tr>

<td width="*" valign="TOP">

<%

'将指针移至开始位置,分别显示每个分类中的新闻

If rsCate.BOF = Fal Then

rsCate.MoveFirst

End If

'依次显示每个新闻类别中最新的10条新闻

DO WHILE Not rsCate.EOF

stitle = rsCate("CateName")

cid = rsCate("CateId")

'变量cnt用来记录

cnt = 0

'生成表格

Respon.Write "<table width='100%' cellspacing=1 cellpadding=2><tr>"

'显示新闻类别,并设置书签

Respon.Write "<td bgcolor=#ceceff><a name=""a"&cid&"""></a> == "

'显示新闻类别标题

Respon.Write stitle + " ==</td></tr>"

'生成另一个表格,用于显示新闻标题

Respon.Write"<table width='100%' border=0 cellspacing=0 cellpadding=0>"

'按提交时间的降序显示新闻标题

sql = "SELECT * FROM News WHERE CateId=" & cid & " ORDER BY Posttime DESC"

rs.Open sql, conn, 1, 1

DO WHILE Not rs.EOF

'计数

cnt = cnt + 1

'只显示10条新闻

If cnt < 11 Then

Dim ndate

ndate = DateAdd("d",-3,date())

'显示新闻标题及链接,查看新闻的脚本文件为NewsView.asp

Respon.Write "<tr><td width='50%'><a onClick='return newwin(this.href);' href='NewsView.asp?id=" + cstr(rs("id")) + "'>" + rs("Title") +""

'如果新闻中有图片,则在标题中显示(附图)

If rs("Attpic") Then Respon.Write "(附图)" End If

Respon.Write "</a>"

'3天内新闻标记new图片

If datediff("d", rs("Posttime"), ndate+time()) <= 0 Then

Respon.Write "<img SRC='pic/new.gif' ALT='最新的新闻!' border=0></td>"

End If

'显示新闻提交的时间

Respon.Write "<td width='20%'>(" + CStr(rs("Posttime")) + ")</td></tr>"

End If

rs.MoveNext

Loop

Respon.Write"</table>"

'设置返回顶部链接,跳转到书签#top

Respon.Write "<p align=right><a href=""#top"">返回顶部</a> "

'生成“更多新闻”链接,查看指定类别所有新闻的脚本为Category.asp

Respon.Write "<a target='_lf' href='Category.asp?flag=" + CStr(cid) + "'>更多新闻...</a></p>"

Respon.Write "</td></tr></table></td></table>"

rs.Clo

rsCate.MoveNext

loop

%>

因为在第l步中已经将各新闻类别的标题读取到记录集rsCate中,所以只需要使用执行rsCate.MoveFirst语句将指针复位就可以了。使用DO WHIIlE循环语句依次处理每个新闻类别,读取此类别中的所有新闻信息到记录集rs中,并在表格中显示新闻标题。请参照注释理解。

第二节 登录程序设计

在对系统进行管理之前,需要通过系统的身份认证。本站中使用chkpwd.asp进行身份验证。对于需要登陆才能察看的网页可以在网页的最前端加上如下代码:

<!--#include file=”chkpwd.asp”-->

这样为登陆的用户将看到如下界面:

第三节 设计管理界面

管理界面的功能是对新闻类别和新闻提供管理界面,只有有权限的用户才能进入管理界面。本节将介绍管理界面index.asp的实现方法。

录入新闻类别和新闻内容后,index.asp的界面如图5-7所示。

下面介绍index.asp的主要代码。

(1)包含文件

在index.asp的开始部分添加下面的代码,这样在打开网页时,程序会自动连接到数据库,并进行身份验证。

<!--#include file="ConnDB.asp"-->

<!--#include file="ChkPwd.asp"-->

(2)显示新闻类别链接

index.asp将新闻按照分类显示,每个新闻类别只显示最新的20条新闻。显示新闻类别的代码如下:

<%

Dim rs,rsCate

Set rs = Server.CreateObject("ADODB.RecordSet")

t rsCate = Server.CreateObject("ADODB.RecordSet")

'定义变量

Dim iflag,sql_where

'参数flag表示指定的新闻类别

iflag = Request.QueryString("flag")

'设置SQL语句,读取所有的新闻类别到rs.Cate

sql = "SELECT * FROM Category ORDER BY CateId"

Set rsCate = conn.Execute(sql)

'显示新闻类别链接,注意根据类别编号设置参数flag

DO WHILE Not rsCate.EOF

stitle = rsCate("CateName")

cid = rsCate("CateId")

%>| <a href='index.asp?flag=<%=cid%>'><font style='TEXT-DECORATION: none;color:black'><%=stitle%></font></a>

<%

rsCate.MoveNext

Loop

%>

在调用index.asp时,参数flag表示新闻类别。如果flag=0,则显示全部新闻,否则显示指定类别的新闻。

(3)显示管理链接

在index.asp中,将根据用户类型显示管理链接,包括“更改密码”、“类别管理”、“用户管理”和“退出登录”,只有Admin用户才能看到“类别管理”和“用户管理”链接。显示管理链接的代码如下:

<%

'如果为管理员则显示类别管理和用户管理

If Session("UrName") = "Admin" Then

Respon.Write " <a href='Cate_Admin.asp'><font color=red>类别管理</font></a>"

Respon.Write " <a href='UrList.asp'><font color=red>用户管理</font></a>"

sql_where = ""

El

'如果不是系统管理员,则只能管理自己提交的新闻,所以在这里设置WHERE子句的条件

sql_where = " Poster='" & Session("UrName") & "'"

End If

%>

Session(”UrName”)中保存着当前登录用户的用户名。当Session(”UrName”)=”Admin”时,才能显示“类别管理”和“用户管理”超级链接。

从程序中可以看到,各项管理功能对应的页面如下:

(1)更改密码PwdChange.asp;

(2)类别管理Cate—Admin.asp;

(3)用户管理UrList.asp;

(4)退出登录logout.asp。

变量sql_where用来记录查询条件。如果当前用户是Admin,则sql_where=“”,即显示所有新闻;否则设置查询条件为“Poster=“”&Session(“UrName”)&“””,即只能管理自己创建的新闻。

(4)分页显示新闻信息

下面将根据指定的新闻类别和页码显示新闻标题列表,代码如下:

<%

'根据参数iflag和sql_where变量设置SQL语句,读取新闻数据

If iflag = "" Then

If sql_where = "" Then

sql = "SELECT * FROM News ORDER BY Posttime DESC"

El

sql = "SELECT * FROM News WHERE " & sql_where & " ORDER BY Posttime DESC"

End If

El

If sql_where = "" then

sql = "SELECT * FROM News WHERE CateId=" & iflag & " ORDER BY Posttime DESC"

El

sql = "SELECT * FROM News WHERE CateId=" & iflag & " And " & sql_where & " ORDER BY Posttime DESC"

End If

End If

rs.Open sql,conn,1,1

'如果记录集rs为空,则显示“目录还没有记录”

If rs.EOF Then

Respon.Write "<tr><td colspan=4 align=center>目前还没有记录。</td></tr></table>"

El

'设置分页显示,每页显示20条新闻记录

rs.PageSize = 20

'读取参数page,表示当前的页码,使用CLng将其转换为长整型

Page = CLng(Request("Page"))

'处理不合法的页码

If Page < 1 Then Page = 1

If Page > rs.PageCount Then Page = rs.PageCount

'设置当前页码为Page

rs.AbsolutePage = Page

'循环显示当前页的记录

For i = 1 to rs.PageSize

'如果到达记录集结尾,则跳出循环

if rs.EOF then Exit For

%>

<tr><td><a href="newsView.asp?id=<%=rs("id")%>" onClick="return newwin(this.href)"><%=rs("title")%></a>

<%If rs("attpic")=true then Respon.write "(附图)" End If%></td>

<td align="center"><%=rs("posttime")%></td>

<td align="center"><a href="newdit.asp?id=<%=rs("id")%>" onClick="return newwin(this.href)">修 改</a></td>

<td align="center"><input type="checkbox" name="News" id="<%=rs("id")%>" style="font-size: 9pt" value="ON"></td>

</tr>

<%

rs.MoveNext()

Next

%>

</table>

<% '显示分页页码

If rs.pagecount>1 then

Respon.Write "<table border='0'><tr><td><b>分页:</b></td>"

For i = 1 To rs.PageCount

Respon.Write "<td><a href='index.asp?flag=" & iflag & "&page=" & i & "'>"

Respon.Write "[<b>" & i & "</b>]</a></td>"

Next

Respon.Write "</tr></table>"

End If

End If

%>

这部分代码的关键部分是根据新闻类别和用户类型生成sELECT语句,查询指定的新闻记录。在调试程序时,可以使用下面的语句显示sELECT语句的内容。

Respon.write sql

第六章 新闻类别管理模块设计

新闻类别管理模块可以实现以下功能:

(1)添加新的新闻类别记录;

(2)修改新闻类别记录;

(3)删除新闻类别记录。

只有Admin用户才有权限进入新闻类别管理模块,在index.asp中,单击“类别管理”超级链接,可以打开类别管理页面cate_Admin.asp。

第一节 设计新闻类别管理界面

打开新闻类别管理界面,如图6-9所示。

图6-9 新闻类别管理界面

下面将介绍Cate_Admin.asp中与界面显示相关的部分代码。

1.显示新闻类别信息

为了便于用户管理新闻类别,Cate_Admin.asp以表格的形式显示新闻类别名称,并在后面显示修改链接和删除复选框,代码如下:

<p align='center'><font style="FONT-SIZE: 12pt"><b>新 闻 类 别 管 理</b></font></p>

<center>

<table border="0" cellspacing="0" width="90%">

<tr>

<td align=right>

<a href="index.asp"><font color="red">新闻管理</font></a>

<a href="Ur_admin.asp"><font color="red">用户管理</font></a>

</td>

</tr>

</table>

<table border="1" cellspacing="0" width="90%" bgcolor="#F0F8FF" bordercolorlight="#4DA6FF" bordercolordark="#ECF5FF">

<tr>

<td width="60%" align="center" bgcolor="#FEEC85"><strong>类 别</strong></td>

<td width="20%" align="center" bgcolor="#FEEC85"><strong>修 改</strong></td>

<td width="20%" align="center" bgcolor="#FEEC85"><strong>选 择</strong></td>

</tr>

<%

Set rs = Server.CreateObject("ADODB.RecordSet")

'读取所有的新闻类别数据到记录集rs中

sql = "SELECT * FROM Category ORDER BY CateId"

rs.Open sql, conn, 1, 1

If rs.EOF Then

'如果记录集为空,则显示“目前还没有记录”

Respon.Write "<tr><td colspan=3 align=center><font style='COLOR:Red'>目前还没有记录。</font></td></tr></table>"

El

'在表格中显示新闻类别名称

DO WHILE Not rs.EOF

%>

<tr>

<td><%=rs("CateName")%></td>

<td align="center"><a href="Cate_Admin.asp?Oper=update&cid=<%=rs("CateId")%>&name=<%=rs("C

ateName")%>">修 改</a></td>

<td align="center"><input type="checkbox" name="Cate" id="<%=rs("CateId")%>"></td>

</tr>

<%

rs.MoveNext()

LOOP

%>

</table>

可以看到,修改新闻类别的页面也是Cate_Admin.asp。参数Oper的值为update,表示当前操作为修改新闻类别;参数cid表示要修改的新闻类别编号;参数name表示要修改的新闻类别名称。新闻类别后面的复选框名为Cate,它的id值与对应新闻类别的编号相同。

通常删除功能也可以通过超级超级链接来实现,就像本例中的‘‘修改’’

超级链接。但是一次只能删除一条记录。本实例介绍一种更方便的方法,即通

过复选框选择要删除的记录,然后单击cc删除,,按钮,这样可以同时删除多

条记录。

2.显示功能按钮

如果存在新闻类别记录,则在表格下面显示“全选”、“清空”和“删除”

按钮,这些按钮是为删除新闻类别记录服务的,代码如下:

'如果记录数大于0,则显示全选、清空和删除等按钮

If rs.RecordCount>0 then

%>

<input type="button" value="全 选" onclick="sltAll()">

<input type="button" value="清 空" onclick="sltNull()">

<input type="submit" value="删 除" name="tijiao" onclick="SelectChk()">

<%End If%>

rs.RecordCount返回当前记录集的记录数量。

3.显示添加或修改新闻类别的表单

在功能按钮的下面,将显示添加或修改新闻类别的表单。当flag=update

时,将显示修改新闻类别的表单;否则显示添加新闻类别的表单,代码如下:

<%

'如果当前状态为修改,则显示修改的表单,否则显示添加的表单

If Soperate = "update" Then

sTitle = Request.QueryString("name")

%>

<form name="UFrom" method="post" action="Cate_Admin.asp?cid=<%=Operid%>&Oper=edit">

<div align="center">

<input type="hidden" name="sOrgTitle" value="<%=sTitle%>">

<font color="#FFFFFF"><b><font color="#000000">类别名称</font></b></font>

<input type="text" name="txttitle" size="20" value="<%=sTitle%>">

<input type="submit" name="Submit" value=" 修 改 ">

</div>

</form>

<%El%>

<form name="AForm" method="post" action="Cate_Admin.asp?Oper=add">

<div align="center">

<font color="#FFFFFF"><b><font color="#000000">类别名称</font></b></font>

<input type="text" name="txttitle" size="20">

<input type="submit" name="Submit" value=" 添 加 ">

</div>

</form>

<%End If%>

添加和修改新闻类别的脚本都是Cate_Admin.asp,只是参数不同。当参数0per等于edit

时,程序将处理修改的新闻类别数据;当参数Oper等于add时,程序将处理添加的新闻类别

数据。

第二节 添加新闻类别

在执行Cate_Admin.asp时,如果参数Oper不等于update,页面的下方将显示添加数据的表单Aform。在文本域txttitle中输入新闻类别的名称,然后单击“添加’,按钮,将调用Cate_Admin.asp,参数Oper等于add,表示插入新记录。

下面将介绍相关的代码。

在执行Cate_Admin.asp时,可以在url中包含参数,程序将根据参数Oper的值决定进行的操作,与添加数据相关的代码如下:

<%

'处理添加、修改和删除操作

dim Soperate

Soperate = Request.QueryString("oper")

Operid = Request.QueryString("cid")

'删除

If Soperate="delete" Then

sql = "SELECT * FROM News WHERE CateId In (" & CStr(Operid) & ")"

Set rs = Conn.Execute(sql)

If rs.EOF Then

sqldelt = "DELETE FROM Category WHERE CateId In(" & CStr(Operid) & ")"

Conn.Execute(sqldelt)

Respon.Write "新闻类别已经成功删除!"

El

Respon.Write "新闻类别中包含新闻,不能删除"

End If

'添加

ElIf Soperate = "add" then

CateName = Request("txttitle")

'判断是否已经存在此类别名称

sql = "SELECT * FROM Category WHERE CateName='" & CateName & "'"

Set rs = Conn.Execute(sql)

'如果没有此类别名称,则创建新记录

If Rs.EOF Then

sql = "INSERT INTO Category(CateName) VALUES('" & CateName & "')"

Conn.Execute(sql)

Respon.Write"新闻类别已经成功添加!"

El

Respon.Write "已经存在此类别名称!"

End If

Set rs = Nothing

ElIf Soperate = "edit" Then

CateName = Request("txttitle")

'如果新类别名称与旧名称不同,则判断是否存在此类别名称

sql = "SELECT * FROM Category WHERE CateName = '" & CateName & "' And CateId=" & Operid

Set rs = conn.Execute(sql)

If Rs.EOF Then '如果原类别编号和新类别名称不存在,则表示类别名称发生变化

Set rs = Nothing

'此时判断是否存在此类别名称

sql = "SELECT * FROM Category WHERE CateName='" & CateName & "'"

Set rs = Conn.Execute(sql)

If Rs.EOF Then '新类别不存在

conn.Execute("UPDATE Category SET CateName='" & CateName & "' WHERE CateId=" & Operid)

Respon.Write "新闻类别已经成功修改!"

El

Respon.Write "已经存在此类别名称"

End if

End If

End If

%>

注意,在插入新闻类别之前,应该判断此新闻类别是否已经存在。这样可以避免出现重复的新闻类别。

第三节 修改新闻类别

在Cate_Admin.asp中,单击新闻类别后面的“修改’,超级链接,将再次执行Cate_Admin.asp,

参数Oper等于update。此时,页面的下方将显示修改数据的表单Uform。在文本域txttitle中输入新闻类别的名称,然后单击“修改”按钮,将调用Cate_Admin.asp,参数Oper等于edit,表示修改记录。下面将介绍相关的代码。在执行Cate_Admin.asp时,可以在url中包含参数,程序将根据参数Oper的值决定进行的操作。

注意,在修改新闻类别之前,应该判断新的新闻类别是否已经存在。这样可以避免出现重复的新闻类别。

第四节 删除新闻类别

在删除新闻类别之前,需要选中相应的复选框。下面介绍几个与选择复选框相关的javaScript函数。

1.选择全部复选框

在Care_Admin.asp中,定义“全选”按钮的代码如下:

<input type="button" value="全 选" onclick="sltAll()">

当单击“全选”按钮时,将执行sltAll()函数,代码如下:

function sltAll()

{

var nn = lf.document.all.item("Cate");

for(j=0;j<nn.length;j++)

{

lf.document.all.item("Cate",j).checked = true;

}

}

lf对象指当前页面,lf.document.a11.item("Cate")返回当前页面中Cate复选框的数量。程序通过for循环语句将所有的Cate复选框值设置为true。

2.全部清除选择

在Cate_Admin.asp中,定义“清空”按钮的代码如下:

<input type="button" value="清 空" onclick="sltNull()">

当单击“清空”按钮时,将执行sltNull()函数,代码如下:

function sltNull()

{

var nn = lf.document.all.item("Cate");

for(j=0;j<nn.length;j++)

{

lf.document.all.item("Cate",j).checked = fal;

}

}

3.生成并提交删除编号列表

在Cate_Admin.asp中,定义“删除”按钮的代码如下:

<input type="submit" value="删 除" name="tijiao" onclick="SelectChk()">

当单击“删除”按钮时,将执行SelectChk()函数,代码如下:

function SelectChk()

{

var s = fal; //用来记录是否存在被选中的复选框

var Cateid, n=0;

var strid, strurl;

var nn = lf.document.all.item("Cate"); //返回复选框Cate的数量

for (j=0; j<nn.length; j++) {

if (lf.document.all.item("Cate",j).checked) {

n = n + 1;

s = true;

Cateid = lf.document.all.item("Cate",j).id+""; //转换为字符串

//生成要删除新闻类别编号的列表

if(n==1) {

strid = Cateid;

}

el {

strid = strid + "," + Cateid;

}

}

}

strurl = "Cate_Admin.asp?Oper=delete&cid=" + strid;

if(!s) {

alert("请选择要删除的新闻类别!");

return fal;

}

if (confirm("你确定要删除这些新闻类别吗?")) {

form1.action = strurl;

form1.submit();

}

}

程序对每个复选框进行判断,如果复选框被选中,则将复选框的id值转换为字符串,并追加到变量strid中。因为复选框的id值与对应的新闻类别编号相同,所以最后strid中保存的是以逗号为分隔符的待删除的新闻类别编号。以strid的值为参数执行Cate_Admin.asp,参数Oper等于delete,就可以删除选中记录了。

在删除新闻类别之前,应该判断此新闻类别中是否包含新闻,如果有新闻,则不能删除,否则会产生没有新闻类别的垃圾新闻。

第七章 新闻发布管理模块设计

系统用户都可以发布新闻,新闻发布管理模块包含以下功能:

(1)发布新新闻;

(2)修改新闻;

(3)删除新闻。

第一节 添加新闻

在index.asp中,“添加新闻”按钮的定义代码如下:

<input type="button" value="添加新闻" onclick="newwin('NewsAdd.asp')" name=add>

当单击“添加新闻”按钮时,将触发onclick事件,并调newwin

('NewsAdd.asp')函数,即在弹出的新窗口中执行News.Add.asp。

NewsAdd.asp的运行界面如图7-10所示。

图7-10 NewsAdd.asp的运行界面

将新闻类别添加到下拉菜单中,代码如下:

<%

Set rs = Server.CreateObject("ADODB.RecordSet")

'将新闻类别装入下拉菜单中

sql = "SELECT * FROM Category ORDER BY CateId"

Set rsCate = Conn.Execute(sql)

DO WHILE Not rsCate.EOF

stitle = rsCate("CateName")

cid = rsCate("CateId")

%>

<option value="<%=cid%>"><%=stitle%></option>

<%

rsCate.movenext

LOOP

%>

下拉菜单名为Cate,值为新闻类别编号,显示的内容是新闻类别名称。编辑新闻内容表单的定义代码如下:

<form action="newsSave.asp" method="POST" name="myform" align="center" onsubmit="return ValidationPasd">

可以看到,表单名为myfom,表单提交后,将由newsSave.asp处理表单数据。在提交表单数据之前,程序将对ValidationPasd变量进行判断,只有当ValidationPasd=True时,才执行提交操作。变量ValidationPasd的值将在对数据有效性进行验证时被赋值。在.NewsAdd.asp中,定义“确定”按钮的代码如下:

<input type="submit" value=" 确 定 " name="B1" onclick="return form_onsubmit(this.form)">

在单击“确定”按钮时,将执行form_onsubmit(this.form),进行数据有效性验证,代码如下:

function form_onsubmit(obj)

{

ValidationPasd = true;

if(obj.Cate.lectedIndex <0) {

alert("请选择新闻类别")

ValidationPasd = fal;

return ValidationPasd;

}

if(obj.title.value == "") {

alert("请填写新闻标题");

ValidationPasd = fal;

return ValidationPasd;

}

if(obj.txtcontent.value == "") {

alert("请填写新闻内容!");

ValidationPasd = fal;

return ValidationPasd;

}

}

这是一段JavaScript代码,参数obj接受this.form的值,表示表单myfom。程序将分别对新闻类别、新闻标题和新闻内容进行判断,这些信息是必须填写的。如果没有填写前面提到的信息,将弹出相关的对话框,ValidationPasd=fal,这样表单数据将无法提交。

在NewsAdd.asp页面的相关位置使用#include命令包括template.asp,将可以显示控制模板。

下面介绍newSave.asp的部分代码。在newSave.asp中,有一个函数ChangeStr(),它的功能是替换新闻正文中的功能字符串,目的是使其能够成为HTML网页的一部分,在浏览网页时被正常显示。被替换的功能字符串包括以下内容:

[upload] 上传新闻 图片标记, 需要将其替换为 “<div[space]align=center><img[space]src=images/”,其中[space]是空格标记,需要在显示新闻正文时转换:

[/upload] 与[upload]匹配使用,标记上传新闻图片的结束。需要将其替换为 “[space]border=0[space]width=300></img></div>”;空格(””) 空格将被替换为“ ;”;chr(13) 回车符将被替换为<BR>。

函数ChangeStr()的代码如下:

Function ChangeChr(str)

ChangeChr = Replace( str, "[upload]", "<div[space]align=center><img[space]src=images/")

ChangeChr=Replace( ChangeChr, "[/upload]", "[space]border=0[space]width=300></img></div>")

ChangeChr = Replace( ChangeChr, " ", " ")

ChangeChr = Replace( ChangeChr, chr(13), "<br>")

End Function

新闻正文需要保存在数据库中,当从数据库中读取新闻正文的内容在网页中显示时,空格将被自动过滤掉,这样<imgsrc=images/>将无法被正确显示。为了避免这种情况发生,这里将空格表示为[space],并存入数据库,在读取数据时再将其转换为空格。

下面程序将接收从NewsAdd.asp传递来的数据,并将它们转换为能够保存到数据库中的格式,代码如下:

Dim title '新闻标题

Dim content '新闻内容

Dim category '新闻类别

Dim sql 'sql语句字符串

Dim rs '记录集变量

title = Request("title")

title = Replace(title,"'","‘")

attpic = Request("attpic")

rqtContent = ChangeChr(request("txtcontent")) '替换函数

rqtContent = Replace(rqtContent,"'","‘")

因为在sql语句中,单引号(')是特殊字符,所以需要将新闻标题和正文中

的单引号替换为全角单引号(‘),并使用ChangeChr()函数对新闻正文进行转换。

接下来程序将保存新闻数据,代码如下:

Set rs = Server.CreateObject("ADODB.RecordSet")

'定义sql语句,为插入新闻记录定义记录集

sql="SELECT * FROM News"

rs.Open sql, Conn, 1, 3

'使用AddNew和Update插入新记录

rs.AddNew

rs("CateId") = CInt(Request("Cate"))

rs("Title") = title

rs("Content") = rqtContent

rs("Posttime") = now()

rs("Poster") = Session("UrName")

rs("ReadCount") = 0

If attpic <> "" Then

rs("attpic") = attpic

End If

rs.Update

'释放资源,显示提示信息

t rs = nothing

Respon.Write "<h2>添加成功!</h2>"

本节前面介绍插入新数据时,都是采用定义INSERT语句的方法。这里使

用一种新方法,在记录集中使用rs.AddNew插入新记录,然后依次对rs中各字段赋值,最后使用rs.Update方法保存记录。

第二节 修改新闻

在index.asp中,每条新闻记录的后面都有一个修改超级链接。单击此链接,将打开NewsEdit.asp,对指定新闻进行编辑。参数id表示新闻编号。

本节将介绍如何使用NewsEdit.asp修改新闻内容。在NewsEdit.asp的开始部分,将使用下面的代码包含相关文件,从而连接到数据库,并判断用户的编辑权限。

<!--#include file="ConnDB.asp"-->

<!--#include file="isAuthor.asp"-->

在Newdit.asp中程序将首先根据参数 ID的值读取新闻数据,代码如下:

Set rsNews = Server.CreateObject("ADODB.RecordSet")

Set rsCate = Server.CreateObject("ADODB.RecordSet")

'读取指定新闻数据

Set rsNews = Conn.Execute("SELECT * FROM News WHERE id = " & Request.QueryString("id"))

因为新闻正文数据在存储前进行过替换处理,所以这里需要将数据还原,代码如下:

If Not rsNews.EOF Then

'对新闻内容进行替换

txtcontent = rsNews("content")

txtcontent = replace(txtcontent, "<br>", chr(13))

txtcontent = replace(txtcontent, " ", " ")

rqtContent = replace(txtcontent, "''", "'")

替换数据的目的是使它能够在表单的滚动文本域txtcontent中正确显示。代码中省略的部分包括生成新闻类别下拉菜单,以及根据新闻数据对表单中的各组件赋值。

在NewsEdit.asp中,定义了一个隐藏域,代码如下:

<input type="hidden" name="id" value="<%=rsNews("id")%>">

它的作用是记录当前编辑新闻的编号。

编辑新闻信息表单的定义代码如下:

<form action="newsUpdate.asp" method="POST" name="myform" align="center" onsubmit="return ValidationPasd">

与urAdd.asp相似,在提交新闻信息时,需要首先执行form_onsubmit函数,对用户输入数据的有效性进行验证。

数据提交后,将由。newsupdate.asp进行处理,它的主要代码如下:

<%

'对新闻正文进行替换的函数

Function ChangeChr(str)

ChangeChr = Replace( str, "[upload]", "<div[space]align=center><img[space]src=images/")

ChangeChr=Replace( ChangeChr, "[/upload]", "[space]border=0[space]width=300></img></div>")

ChangeChr = Replace( ChangeChr, " ", " ")

ChangeChr = Replace( ChangeChr, chr(13), "<br>")

End Function

rqtContent = ChangeChr(request("txtcontent")) '替换函数

rqtContent = Replace(rqtContent,"'","‘")

'替换新闻标题中的半角单引号

Dim title

title = Request.Form("title")

title = replace(title,"'","‘")

'设置附图标记

If Request.Form("attpic")<>"" Then

attpic = 1

El

attpic = 0

End If

'设置UPDATE语句,更新新闻信息

sql = "UPDATE News SET Posttime='" & now() &"', Attpic=" & attpic & ", Title = '" & title _

& "', CateID = " & CInt(Request("Cate")) & "," & "Content='" & rqtContent & "' WHERE Id=" & CInt(Request("Id"))

conn.Execute(sql)

Respon.Write "<h2>修改成功!</h2>"

%>

程序首先定义了替换函数ChangeChr(),然后接收从NewsEdit.asp中传递来的新闻数据,最后定义了update语句,根据接收到的数据更新新闻信息。

NewsEdit.asp的显示界面与NewsAdd.asp相似,处理过程也有相同之处,请读者参照理解。

第三节 删除新闻

在删除新闻之前,需要选中相应的复选框。这与删除新闻类别时的操作相似,所以在index.asp中,也定义了操作复选框的函数,包括选择全部复选框的sltAll()清除全部选择的sltNull()和生成并提交删除编号列表的SelectChk()等。

处理删除新闻操作的脚本为NewsDelt.asp,参数id表示要删除的新闻编号。NewsDelt.asp的主要代码如下:

<%

Dim ids

ids = Request.QueryString("id")

sql = "DELETE FROM News WHERE Id IN (" & ids & ")"

conn.Execute(sql)

%>

<script language="JavaScript">

alert("成功删除!");

location.href = "index.asp";

</script>

在DELETE语句中使用WHERE…in…字句的功能是删除新闻编号列表IDS中出现的所有的新闻。

第四节 新闻查询管理

如果系统中新闻数量比较多,那么只按照分类察看新闻显然是不够的。为了方便网友使用,本站中设计了新闻管理功能。

新闻查询管理页面的脚本是arch.asp,运行界面如图所示

可以看到,新闻查询可以分为下面几种情况:

(1)按发布日期查询。

(2)查询新闻标题和新闻内容中包括的文字。

在arch.asp中,用于编辑查询条件的表单为Form1,它的定义代码如下:

<form name="form1" method="POST" action="archResult.asp">

当表单数据提交时,将执行archResult.asp。为了验证用户录入数据的有效性,在arch.asp中定义了一些函数,下面介绍这些函内容。

1.IsEmpty()函数

IsEmpty()函数的功能是判断字符串是否为空,代码如下:

function isEmpty (str) {

if ((str==null)||(str.length==0)) return true;

el return(fal);

}

参数str表示要判断的字符串,如果它为空或长度为0则返回true,否则返回fal。

2.IsDigital()函数

IsDigital()函数的功能是判断字符串是否是数字类型,代码如下:

function isDigit(s)

{

var patrn=/^[0-9]{1,20}$/;

if (!patrn.exec(s)) return fal

return true

}

参数s表示要判断的字符串。变量patrn是一个正则表达式,正则表达式是由普通字符以及特殊字符组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。正则表达式中的Execute方法对指定的字符串执行正则表达式搜索。/^表示正则表达式的开始,$/表示正则表达式的结束,[0.9]表示以0~9的数字为开始和结束,{1,20}表示长度为1~20。

3.IsInt()函数

IsInt()函数的功能是判断指定的字符串是否是整型数据,代码如下:

function isInt (theStr) {

var flag = true;

if (isEmpty(theStr)) { flag=fal; }

el

{ for (var i=0; i<theStr.length; i++) {

if (isDigit(theStr.substring(i,i+1)) == fal) {

flag = fal; break;

}

}

}

return(flag);

}

参数theStr表示要判断的字符串。如果theStr为空,则返回fal;否则对theStr中的每个字符进行判断,如果有一个字符不是数字类型(使用IsDigital函数判断)则返回fal。如果上述情况都没有返回fal,则返回true。

4.IsBetween(、)函数

IsBetween()函数的功能是判断指定数据是否在两个数字之间,代码如下:

function isBetween (val, lo, hi) {

if ((val < lo) || (val > hi)) { return(fal); }

el { return(true); }

}

参数val表示要比较的数值,参数lo表示比较范围的下限,参数hi表示比较范围的上限。程序将val与lo、hi进行比较,如果val的值不在它们之间,则返回fal,否则返回true。

5.IsIDate()函数

IsDate()函数的功能是判断指定数据是否是日期型数据,代码如下:

function isDate (theStr) {

var the1st = theStr.indexOf('-');

var the2nd = theStr.lastIndexOf('-');

if (the1st == the2nd) { return(fal); }

el {

var y = theStr.substring(0,the1st);

var m = theStr.substring(the1st+1,the2nd);

var d = theStr.substring(the2nd+1,theStr.length);

var maxDays = 31;

if (isInt(m)==fal || isInt(d)==fal || isInt(y)==fal)

return(fal);

el if (y.length < 4) return(fal);

el if (!isBetween (m, 1, 12)) return(fal);

el if (m==4 || m==6 || m==9 || m==11) maxDays = 30;

el if (m==2) {

if (y % 4 > 0) maxDays = 28;

el if (y % 100 == 0 && y % 400 > 0) maxDays = 28;

el maxDays = 29;

}

if (isBetween(d, 1, maxDays) == fal) { return(fal); }

el { return(true); }

}

}

可以看到前面定义的函数都是为了实现Isdate()函数的功能。

在arch.asp中,定义“开始”按钮的代码如下:

<input type="submit" value=" 开 始 " language=javascript name="tijiao" onclick="return button2_onclick()">

当用户单击“开始”按钮时,将触发onclick事件,并执行Button2_onclick()函数,代码如下:

function button2_onclick()

{

// 字段不能都为空,如果发布日期为空,则查询条件不能空

if (form1.sdate.value=="" && form1.edate.value=="" && form1.archcontent.value == "")

{

alert("查询条件不能都为空!");

form1.archcontent.focus();

return (fal);

}

// 检查日期格式是否正确

if (form1.sdate.value.length>0)

{

if(!isDate(form1.sdate.value))

{

alert("开始日期格式不正确,请重新输入!");

form1.sdate.focus();

return (fal);

}

}

if (form1.edate.value.length>0)

{

if(!isDate(form1.edate.value))

{

alert("截至日期格式不正确,请重新输入!");

form1.edate.focus();

return (fal);

}

}

}

这段程序将判断用户输入的查询条件是否为空,并使用自定义函数IsDate()验证日期是否有效。

下面介绍archResult.asp的实现方法。它的主要功能是根据用户提交的查询条件生成SELECT语句,并以表格的形式显示查询结果。在archResuIt.asp中,定义了一个函数GetUrName(),它的功能是根据用户名返回用户的真实姓名,代码如下:

<%

'根据用户名读取用户姓名

Function GetUrName(UrId)

Dim RsUr,sql

Set RsUr = Server.CreateObject("ADODB.RecordSet")

sql= "SELECT * FROM Urs WHERE UrName='" & Trim(UrId) & "'"

Set rsUr = Conn.Execute(sql)

If NOT rsUr.EOF Then

GetUrName = rsUr("Ename")

El

GetUrName = "无名"

End If

End Function

%>

这里使用GeturName()函数的作用是取得新闻提交人的姓名,并在查询结果中显示。如果将本系统用于企业内部的新闻发布平台,则通常需要显示提交人姓名。如果不需要此功能,也可以将相关代码去掉。

archResult.asp的最重要部分就是生成查询新闻的SELECT语句,代码如下:

<%

' 提取发布时间查询范围

sDate = Request("sdate")

eDate = Request("edate")

' 根据时间字段设置查询语句,需要把时间字符串转换为日期型

If Len(sDate)>0 And Len(eDate)>0 Then

strSqlPTime = " WHERE PostTime>='" & sDate & "'"

strSqlPTime = strSqlPTime & " And PostTime<='" & eDate & "'"

ElIf Len(sDate)>0 And Len(eDate)=0 Then

strSqlPTime = " WHERE PostTime>='" & sDate & "'"

ElIf Len(sDate)=0 And Len(eDate)>0 Then

strSqlPTime = " WHERE PostTime<='" & eDate & "'"

End If

' 取得查询模式(精确查询或模糊查询),参见arch.asp中的定义

archcontent1 = Request("archcontent")

fanwei = Request("fanwei")

If fanwei ="all" Then '精确查询

archcontent = archcontent1

El '模糊查询

archcontent = "%" & archcontent1 & "%"

End If

' 取得查询范围值

archfanwei = Request("D1")

If archfanwei="title" Then '只在新闻标题中查询

Respon.Write "<h4><font color=#7966C6>按 信息标题 查询的结果</font></h4><br>"

strSQL = " Title LIKE '" & archcontent & "' ORDER BY PostTime DESC"

ElIf archfanwe="content" Then '只在新闻内容中查询

Respon.Write "<h4><font color=#7966C6>按 信息内容 查询的结果</font></h4><br>"

strSQL = " Content LIKE '" & archcontent1 & "' ORDER BY PostTime DESC"

End If

'合并查询条件

If Len(strSqlPTime)=0 Then

strSQL = " WHERE " & strSQL

El

strSQL = strSqlPTime & " And " & strSQL

End If

'记录查找到的新闻序号

Dim ncnt

ncnt = 0

'输出表格

Respon.Write "<table width='100%'>"

Respon.Write "<tr>"

Respon.Write "<td align=middle width='10%'><b>序号</b></td>"

Respon.Write "<td align=left width='30%'><b>信息标题</b></td>"

Respon.Write "<td align=middle width='14%'><b>所属类别</b></td>"

Respon.Write "<td align=middle width='10%'><b>内容长度</b></td>"

Respon.Write "<td align=middle width='16%'><b>提交人</b></td>"

Respon.Write "<td align=middle width='20%'><b>提交时间</b></td>"

Respon.Write "</tr>"

Dim rsSearch,rsCate

Set rsSearch= Server.CreateObject("ADODB.RecordSet")

Set rsCate = Server.CreateObject("ADODB.RecordSet")

'生成查询语句

strSQL = "SELECT * FROM News " & strSQL

'Respon.Write "sql :"& strSQL

rsSearch.Open strSQL, Conn, 1, 3

以上代码的工作过程如下:

根据参数sdate和edate生成与日期相关的查询条件;根据查询模式(精确查询或模糊查询)生成相关的查询条件。如果是精确查询,则使用“=”;如果是模糊查询,则使用LIKE和通配符%;根据查询范围生成相关的查询条件;将所有查询条件合并成WHERE子句;生成显示查询结果的表头;生成并执行SELECT语句。

-接着程序将使用循环语句依次处理每条查询记录,代码如下:

'依次处理查询结果

Do While Not rsSearch.EOF

ncnt = ncnt + 1

Respon.Write "<tr bgColor=Lavender style='COLOR:Purple;'>"

Respon.Write "<td align=middle>"&ncnt&"</td>"

'输出新闻标题及链接

Respon.Write "<td><a href=NewsView.asp?id="&rsSearch("Id")&" onClick='return newwin(this.href)'>"&rsSearch("Title")&"</a>"

' 判断是否有图片

If rsSearch("attpic") Then

Respon.Write "(附图)"

End If

Respon.Write "</td>"

' 取得信息分类名称

sql = "SELECT * FROM Category WHERE CateId=" & rsSearch("CateId")

Set rsCate = Conn.Execute(sql)

If NOT rsCate.EOF Then

Respon.Write "<td align=middle>"&rsCate("CateName")&"</td>"

End If

' 计算内容大小

If rsSearch("Content")="--" Then

nlength=0

El

nlength = Len(rsSearch("Content"))

' 输出内容大小、提交人姓名

Respon.Write "<td align=middle>"&nlength&" Bytes</td>"

' 显示提交人姓名

Respon.Write "<td align=middle>"&GetUrName(rsSearch("Poster"))&"</td>"

' 显示提交时间

Respon.Write "<td align=middle>"&rsSearch("PostTime")&"</td>"

Respon.Write "</tr>"

End If

rsSearch.MoveNext()

LOOP

Respon.Write "</table>"

Set rsSearch = Nothing

Set rsCate = Nothing

Set Conn = Nothing

%>

第八章 调试与安装第一节 安装IIS

1、在安装IIS之前,必须安装TCP/IT协议。

TCP/IP协议是执行IIS的必要条件,没有它ASP就不能运行,所以必须先安装TVP/IP协议(如果已经安装就可以跳过这一节)。

步骤: 控制面板→双击"网络" →单击:"添加"按钮 →选择"协议"选项 →在厂商列表框中选择Microsolf选项 →在"网络协议"列表框中选择TCP/CP,单击"确定"

2、安装IIS服务器程序

IIS 的安装是创建ASP运行环境的关键一步,安装好它以后,计算机就是一台Web服务器了。

步骤:放入光盘,点击控制面板->添加或删除程序->添加或删除windows组件,如图8-1所示选择INTERNET信息服务单击下一步。

安装好IIS后,进入控制面板下的管理工具找到 INTERNET信息服务双击即可打开。然后建立虚拟目录,把自己首页的目录写上去,然后取一个别名,主要是为了方便,再在默认文档中,写上主页的文件名就可以了,以后在IE浏览器中只要打127.0.0.1就会显示自己的主页。

图8-1

第二节 ASP硬件要求

操作系统Windows 9X、windows NT Workstation/Server4.0、Windows 2000 Server/Professional版。

CPU:没有大的要求,只要可以运行以上的Windows操作系统就可以了。当然,速度是越快越好。

内存:基于内存需要32MB,建议使用64MB以上内存,如果使用Windows 2000,建议用128MB内存。

硬盘空间:至少有50MB以上的磁盘空间来安装所需的组件。

ASP软件要求

Windows 98: PWS4.0版附属于Windows 98 光盘的add=onepws目录,执行其中的tup.exe,即可安装PWS4.0版。

Web服务器软件建设

Web的内容保存在Web站点(Web服务器)中,用户可以通过浏览器(Browr)访问Web站点。因此,Web是一种基于客户机/服务器的体系结构。也就是说,Web实际上是一种全球性通信系统,该系统通过Intrnet使计算机相互传送基于超媒体的数据信息。Web是一个超文本信息系统,它的超文本链接使得Web文档不再象书本一样的固定的、线性的,而是可以从一个位置迅速转到另外的位置,从一个主题到另一个相关的主题。Web是分布式的。无论系统的internet访问WWW。对于Web,只要通过超链接指向所需的站点,就可以使物理上放置在不同位置的信息在逻辑上一体化。对用户来说这些住处是一体的。

Web具有新闻性。Web站点上的信息是动态的,经常更新的。住处的提供者可以经常的对站上的信息进行更新,所以用户(浏览者)可以得到最新的信息。

Web是动态的、交互的。以Java为代表的动态技术使Web从静态的页面变成可扩行程序,从而大大提高了Web的动态性和交互性。可以通过超链接,用户的浏览顺序和所到站点完全由用户自行决定。

Web服务器硬件建设专线入网具有通信速度高等优点,但是费用相对较高,投资较大。需要具备入网专线。入网后网上所有终端和工作站均可享受Internet服务。用户可向ISP申请X.25声母或DDN专线。专线速度可达200bps至2048bps可选。

具有了专线以后,就需要位本地子网选择一个路由器以实现路由功能,然后接入IGS网关;也可以不用路由器,直接接入IGS网关路由器因为IGS具有IP路由软件,可局域网连上服务器。

结束语

经过老师耐心细致的指导,及设计小组同学们的密切合作,同时翻阅了大量的资料(包括网上资料,书本及学校的一些相关资料)经过近一个月的努力,网站的设计制作告一段落。总结这次“蓝球网站设计”开发制作过程,我们综合使用了目前因特网上的各种静态制作方法及交互式动态网站的制作设计手段,并对初步利用后台程序完成了网站的动态响应与生成网页的技术。同时也从中学习了对静态页面的处理风格,色彩搭配,页面导航方面有了一定经验。对用Javascript语言制作动态效果也有了更进一步的认识。在交互式网页设计学会了如何使用MYSQL建立数据库,以及对数据库浏览,修改,添加,查询。如何用PHP编写 程序来方便访客,读者在网上查询学校各方面的信息。

目前网站的制作技术与要求,都已经告别了因特网初期网站制作的“幼稚”期,随着各类网站的迅速增加与浏览者需求的提高,无不要求网站从立意,策划,页面设计到后台程序的全面提高。无论是个人网站还是企业网站都必须被要求从浏览者角度出发,最大限度的满足用户的要求,这也是以后各类网站发展竞争的真正实质所在。

本次设计由于设计时间较紧,且相关模块比较多,加之设计经验的不足,在网站的整体设计及各模块功能可能设计的不完全,有待于进一步的完善和改进。

参 考 文 献

1、《FrontPage2000入门与实战技术》,人民邮电出版社2000年5月第1版。 2、互联网上提供的网页制作素材及特效。

3 ASP+SQLSEVER项目开发。

后 记

网站的建立与发布,最终离不开计算机网络系统平台的支持。计算机网络是计算机技术和现代通信技术的有机结合。计算机网络技术是由现代计算机处理技术和现代通信技术结合发展而成的,是社会信息化的基础技术。 计算机网络技术经过30余年的发展,已经成长为一棵参天大树。从它的作用范围角度讲有局域网、城域网和广域网;从传递的速率角度讲有低速、高速和超高速宽带网等之分;从连接的形式讲有环形网、星形网、总线网等;从应用的类型讲可以分成控制网、通讯网、管理网等;并且把最适应于人类与外部物理世界沟通的多媒体技术大量结合在一起,形成了丰富多彩的综合运行环境。 通过本次课程设计的制作,不但是对我这三年所学知识的一个检验,也是对我计算机应用水平与写作水平的一个考核,而且还给了我一个找出自己不足的机会。

由于课程设计者水平有限,时间仓促,错误之处在所难免,希各位读者批评指正。

本文发布于:2023-02-28 20:13:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167766315078930.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:新闻发布系统(新闻发布系统代码).doc

本文 PDF 下载地址:新闻发布系统(新闻发布系统代码).pdf

下一篇:返回列表
标签:发布系统   新闻   代码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|