ASP+ACCESS基于WEB网上留言板

摘要

本文概述了ACCESS数据库及其相关的一些知识,着重论述ACCESS数据库和ASP的中间技术,构建一个简单的留言板。具体的实现是构造一个留言板系统,能很方便的和同学沟通和交流。留言板具有功能强大、使用方便的特点。用户以个人的身份进入,查看留言,以及在留言板中写下自已要留言的内容。管理员可根椐管理员用户名和密码进入,进行适当的修改和删除。

     在此设计中,主要的技术有:ASP,HTML,ADO等,用到的运行环境(操作系统,服务器)有WINDOWS98,PWS,和IE 5.0等,将它们集成在一个INTRANET(模拟INTERNET)的环境中,从而实现了设计。

关键词】留言板 网络数据库 ASP HTML

4.1 用户、管理员浏览模块

(图4.1)

此模块的功能是用户和管理员都能利用该模块浏览所有的留言内容,此模块不用注册即可使用,每页由7条记录组成,具有翻页功能,具体的设计步骤如下(此模块的图片如图3.1)。

下面的ASP代码实现显示表stu中的内容:

<%response.buffer=true%>

<html>

<head>

<title>留言板</title>

</head>

<%'========================显示数据库表stu中的信息=======================

   sql="select * from lyb "

  set rs=server.createobject("ADODB.Recordset")

  rs.Open sql,conn,1

  numzhuce=rs.RecordCount

  page=request.querystring("page")           '接收上一页、下一页的页号

     if len(page)>0 and isnumeric(page) then

           page=int(page)

     else

           page=1

     end if

     if not rs.eof  then

          size=7

         rs.PageSize=size           '每页记录数

          TotlePage=rs.PageCount     '总页数

        TotlePage=int(numzhuce/size)

         if (numzhuce mod size)>0 then TotlePage=TotlePage+1  '总页数

         if page<1 or page>TotlePage then

             page=1

             rs.AbsolutePage=page  '当前页

         else

             rs.AbsolutePage=page  '当前页

          end if

          num=1                    '循环变量初值

%>

以上的内容分别把接收到的数据放在变量中,下面的代码的功能是显示出这些信息。

<td width="545" height="91" valign="top">

     <font size="2">

       <%while not rs.eof and num<=size%>

       <font color="#FF00FF">

       [留言主题]</font><%=rs("主题")%><br>

    <font color="#FF00FF">

    [留言内容]</font><%=rs("内容")%><br>

    &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp                                 

    <%=rs("昵称")%>&nbsp                              

    [<%=rs("时间")%>] <br>

    <font color="#0000FF">

    +---------------------------------------------------------------------+</font> <br>

    <%rs.movenext

            num=num+1

wend

rs.close

set rs=nothing%>

        </font>

       </td>

  </tr>

  <tr>

    <td width="545" height="91" valign="top">

<font size="2">

<a href="lyb.asp?page=1">[第一页]</a>

  <% select case page

     case 1:            '只有下一页

         if totlepage>1  then

%>

          <a href="lyb.asp?page=2">[下一页]</a>[第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]

          <% else %>

          第<%=page%>页/共<%=TotlePage%></font>

          <% end if %>

     <% case TotlePage:    '只有上一页%>

          <a href="lyb.asp?page=<%=page-1%>">[上一页]</a>[第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录] 

      <% case else:  %>

          <a href="lyb.asp?page=<%=page-1%>">[上一页]</a>

          <a href="lyb.asp?page=<%=page+1%>">[下一页]</a>

          [第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录] 

      <%  end select %>

</font>

<%end if%>

    </td>

此模块用到了RecordCount、request.querystring等方法以及一些翻页的技巧。由于篇幅限制,这里只给出了一部分比较重要的代码,其它的简略。

4.2 用户留言及修改模块

   该模块的功能是,用户可以在这里把自己的留言写在这里,如果其它用户浏览里,就可以看到此用户的留言(模块的缩略图如下3.2)。

(图4.2)

     该模块由留言昵称、留言QQ、电子信箱、个人网站、留言主题和留言内容组成,其中后面有带星号的为必填项,其它的为选填项,写完之后单击写好了,即可提交,按返回上页,直接返回到首页。此页中用到了表单提交的一些技术,相关代码如下:

<script language="javascript">

function presub1(f) {

if(f.t1.value=="")

{

  alert("昵称不能为空");

  return false;}

else if(f.t5.value=="")

{

  alert("主题不能为空");

  return false;}

  else if(f.s1.value=="")

{

  alert("请输入正文内容");

  return false;}

else

  return true;

}

</script>

     以上这段程序的功能是利用JAVA脚本进行本地验证,当用户的表单里填入空值或者不正确值的时候给出相应的提示。无需通过服务器。

    <form method="post" οnsubmit="return presub1(this)" action="xly1.asp">

     这句代码的功能是将整个表单以post方式发送到xly1.asp文件里。

4.3 用户注册模块

    此模块的功能是用户可以在这里注册成为会员,有一些比普通用户更有一些权限。下图是注册的缩略图。

(图4.3)

该模块的具体设计和代码如下:

<script language="javascript">

function presub1(f) {

if(f.yhm.value=="")

{

  alert("用户名不能为空");

  return false;}

else if(f.kl.value=="")

{

  alert("密码不能为空");

  return false;}

  else if(f.kl.value!=f.qrkl.value)

{

  alert("两次输入密码不一致");

  return false;}

else if(f.zjhm.value=="")

{

  alert("请输入证件号码");

  return false;}

else

  return true;

}

</script>

以上程序是本地验证,要求输入的内容不能为空或者内容不合法。

<%

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

rs.open "select * from news","dsn=ql;"

yhm=request("yhm")

kl=request("kl")

qrkl=request("qrkl")

zjhm=request("zjhm")

lxfs=request("lxfs")

dh=request("dh")

dw=request("dw")

%>

<html>

<head>

<title>注册信息</title>

</head>

<body>

<table border="1" width="100%" height="334">

  <tr>

    <td width="14%" height="61"></td>

    <td width="86%" height="61">您注册的信息:</td>

  </tr>

  <tr>

    <td width="14%" height="261"></td>

    <td width="86%" height="261" valign="top"><%=request("yhm")%><p>

    <%=request("kl")%><p>

    <%=request("qrkl")%><p>

    <%=request("zjhm")%><p>

    <%=request("lxfs")%><p>

    <%=request("dh")%><p>

    <%=request("dw")%><p>

    </td>

  </tr>

</table>

</body>

</html>

以上程序把注册信息发送到服务器的数据库,并在屏幕上显示出来。

4.4 管理员登陆模块

(图4.4)

该模块的功能是管理员可以在这里登陆,可以在线的管理这些留言,管理员有特殊的权限,做普通用户不可以做的事情,比如,可以将留言删。(该模块的缩略图如3.3)具体的实现和代码如下:

<%response.buffer=true%>

<%response.expires=0%>

这两名话的作用是打开内存中的缓冲区。

<script language="javascript">

function presub(f) {

if(f.usname.value=="")

{

  alert("请输入用户名");

  return false;}

else if(f.uspas.value=="")

{

  alert("请输入密码");

  return false;}

  else

  return true;

}

</script>

以上这段程序的功能是利用JAVA脚本进行本地验证,当管理员输入的用户名和密码为空值或者不正确值的时候给出相应的提示

4.5 管理员回复与删除留言模块

     此模块的功能是管理员可以进入,并且可以进行增加和删除等功能,(此模块的缩略图如3.4)具体的实现方和代码如下:

(图4.5)

当用户点删除时,弹出提示,询问是否删除,如果确定点是,否则点取消。

<%response.buffer=true%>

<%

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

rs.open "select * from lyb","dsn=stu;"

%>

<%set cn=server.createobject("adodb.connection")

cn.open"dsn=stu;"

%>

定义缓冲区和连接数据源。

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

<%

       username=request.querystring("username")

   

       if trim(username)<>"" then

        sql="delete  from lyb where 昵称='"& username  & "'"

        cn.execute sql  

       end if

%>

<%'***************************************显示数据库表stu中的信息***************************************

   sql="select * from lyb "

  set rs=server.createobject("ADODB.Recordset")

  rs.Open sql,conn,1

  numzhuce=rs.RecordCount

  page=request.querystring("page")           '接收上一页、下一页的页号

     if len(page)>0 and isnumeric(page) then

           page=int(page)

     else

           page=1

     end if

     if not rs.eof  then

          size=7

         rs.PageSize=size           '每页记录数

          TotlePage=rs.PageCount     '总页数

        TotlePage=int(numzhuce/size)

         if (numzhuce mod size)>0 then TotlePage=TotlePage+1  '总页数

         if page<1 or page>TotlePage then

             page=1

             rs.AbsolutePage=page  '当前页

         else

             rs.AbsolutePage=page  '当前页

          end if

          num=1                    '循环变量初值

%>

把总页数和每页的内容分别赋给变量。

<% ' ****************************删除确认******************************************%>

  <script language=javascript>

   function chkdel() {

   var talk = window.confirm("请确定是否删除该条记录!");

   if (talk==false) {return false;}

  }

  </script>

确认是否删除该记录。

<td width="1293" height="182" valign="top">

                    <font size="2">

       <%while not rs.eof and num<=size%>

     <font color="#FF00FF"> 

       [留言主题]</font><%=rs("主题")%>

    <br>

    <font color="#FF00FF">

    [留言内容]</font><%=rs("内容")%><br>

    &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp             

    <%=rs("昵称")%>&nbsp [<%=rs("时间")%>]<font color="#0000FF"> <br>

    <font color="#0000FF">

    +---------------------------------------------------------------------+&nbsp;

    <a href="lybxg.asp?username=<%=rs("昵称")%>" οnclick="return  chkdel();" >删除?</a>

       </font> <br>

    <%rs.movenext

            num=num+1

wend

rs.close

set rs=nothing%>

        </font></font>

    <font size="2">

            <a href="lybxg.asp?page=1">[第一页]</a>

  <% select case page

     case 1:            '只有下一页

         if totlepage>1  then

%>

          <a href="lybxg.asp?page=2">[下一页]</a>[第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]

          <% else %>

          第<%=page%>页/共<%=TotlePage%></font>

          <% end if %>

     <% case TotlePage:    '只有上一页

%>

          <a href="lybxg.asp?page=<%=page-1%>">[上一页]</a>[第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]  

      <% case else:  %>

          <a href="lybxg.asp?page=<%=page-1%>">[上一页]</a> 

          <a href="lybxg.asp?page=<%=page+1%>">[下一页]</a> 

          [第<%=page%>页/共<%=TotlePage%>页][共<%=numzhuce%>条记录]  

      <%  end select %>

<%end if%>

            </td>

4.6 其他程序模块

     以上几节简单的介绍了几个模块的一些比较重点的程序段,但是在本节中介绍一下几个在表面上看不到的,但是却起着相当重要的一些代码。

<%sj=date()

aaa="'"&request("T1")&"','"&request("T2")&"','"&request("T3")&"','"&request("T4")&"','"&request("T5")&"','"&request("s1")&"','"&sj&"'"%>

<%set cn=server.createobject("adodb.connection")

cn.open"dsn=stu;"

%>

<%strsql="insert into lyb(昵称,qq,邮箱,网站,主题,内容,时间) values("&aaa&")"

cn.execute(strsql)

%>

<%cn.close

set cn=nothing%>

<%response.redirect"lyb.asp"%>

     以上这段代码是在后台运行的,该网页是个空的,什么也不显示,当用户写完留言的时候,把表单里所有的东西都要提交到这里,利用ASP提供的insert int 等语句把他传送到服务器的数据库的表格里。

<%response.buffer=true%>

<%usname=request("usname")

uspas=request("uspas")

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

rs.open "select * from password","dsn=stu;"

%>

<html>

<head>

<body>

<%while not rs.eof

if usname=rs("用户名") and uspas=rs("密码") then

%>

<%response.redirect "lybxg.asp"%>

<%response.end%>

<%end if

rs.movenext

wend

rs.close

set rs=nothing%>

<%response.redirect"lybgly.asp"%>

</body>

</html>

该程序段的功能是,接收用户名和密码,并把用户名和密码发送到服务器的数据库里验证,如果和数据库里的一样,则可以登陆,否则提示用户名或密码错误。

<%

    constr="DBQ="+server.mappath("stu.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

    set conn=Server.CreateObject("ADODB.connection")

    conn.open constr

%> 

连接数据源文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

瑞芯微RV1126——人脸识别源码分析

本节内容主要分为3部分&#xff0c;第一部分是流程结构图;第二部分为人脸识别代码流程;第三部分为具体的代码分析。 1.流程结构图 2.人脸识别代码流程 1、人脸数据的初始化&#xff1a; init_all_rockx_face_data();init_face_data();2、创建rtsp会话&#xff0c;这里包括发…

一个典型的分布式缓存系统是什么样的?no.32

分布式 Redis 服务 由于本课程聚焦于缓存&#xff0c;接下来&#xff0c;我将以微博内的 分布式 Redis 服务系统为例&#xff0c;介绍一个典型的分布式缓存系统的组成。 微博的 Redis 服务内部也称为 RedisService。RedisService 的整体架构如图所示。主要分为Proxy、存储、集…

产品推荐 | 基于Xilinx XCKU115的半高PCIe x8 硬件加速卡

一、板卡概述 本板卡系我公司自主研发&#xff0c;采用Xilinx公司的XCKU115-3-FLVF1924-E芯片作为主处理器&#xff0c;主要用于FPGA硬件加速。板卡设计满足工业级要求。如下图所示&#xff1a; 二、功能和技术指标 板卡功能 参数内容 主处理器 XCKU115-3-FLVF1924-E 板卡…

UE4/UE5像素流送云推流:多人访问不稳定、画面糊、端口占用多等

UE4/UE5想要实现网页访问&#xff0c;很多工程师会选择guan方的像素流送。但这个技术要求在模型开发初期就接入。对于一些已有UE模型是无法进行流化的。虽然也可以解决新UE模型的网页访问问题&#xff0c;但在实际的应用中&#xff0c;点量云流也收到很多反馈说&#xff0c;使用…

Python爬取B站视频:封装一下

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️如遇文章付费&#xff0c;可先看…

大数据Hadoop之-工具HIVE(一)

大数据Hadoop之——数据仓库Hive HIVE介绍Hive是基于Hadoop的一个数据仓库(Data Aarehouse,简称数仓、DW),可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。是用于存储、分析、报告的数据系统。 在Hadoop生态系统中,HDFS用于存储数据,Yarn用于资源管理…

【Linux】中的常见的重要指令(中)

目录 一、man指令 二、cp指令 三、cat指令 四、mv指令 五、more指令 六、less指令 七、head指令 八、tail指令 一、man指令 Linux的命令有很多参数&#xff0c;我们不可能全记住&#xff0c;我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: m…

白嫖免费图床!CloudFlare R2太香了!

1 为啥要折腾搭建一个专属图床&#xff1f; 技术大佬写博客都用 md 格式&#xff0c;要在多平台发布&#xff0c;图片就得有外链后续如博客迁移&#xff0c;国内博客网站如掘金&#xff0c;简书&#xff0c;语雀等都做了防盗链&#xff0c;图片无法迁移 2 为啥选择CloudFlare…

对话太医管家CEO徐晶:数字化技术正在为健康管理行业带来新平衡丨数字思考者50人...

ITValue 钛媒体特别专题策划《数字思考者50人》&#xff1a;探访中国深刻的数字化思考者群体。我们理解的“TechThinker”&#xff0c;涵盖了中国数字化浪潮中的技术践行者、政策制定者与投资决策者。在这场长达10年的乘风破浪中&#xff0c;每个人都在分享技术进步的果实&…

文件系统--软硬链接

文章目录 现象软链接硬链接 现象 建立软链接 建立硬链接 // 删除软硬链接都可以用 unlink 指令 unlink soft-link软链接 软链接是一个独立的文件&#xff0c;因为有独立的inode number 软链接的内容&#xff1a;目标文件所对应的路劲字符串如果我们直接查看软链接文件&#…

vue2vue3为什么el-table树状表格失效?

上图所示&#xff0c;后端返回字段中有hasChildren字段。 解决树状表格失效方案&#xff1a; 从后端拿到数据后&#xff0c;递归去掉该字段&#xff0c;然后就能正常显示。&#xff08;复制下方代码&#xff0c;直接用&#xff09; 亲测有效&#xff0c;vue2、vue3通用 /**…

如何运用多媒体,打造企业实力展示厅?

企业文化、产品是其长期发展的根本所在&#xff0c;为此越来越多的企业开始选择运用多媒体互动&#xff0c;来打造企业多媒体展厅的方式&#xff0c;对企业文化、品牌形象、产品进行推广宣传&#xff0c;并在多媒体互动装置的支持下&#xff0c;能让客户能够快速且全面的了解企…

基于SSM的“酒店管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“酒店管理系统”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 首页 管理员登录页面 用户管理页面 客房信息查询 酒店详细信息 后台…

APP广告变现怎么实现的,背后逻辑是什么?

广告变现的实现主要基于以下几个关键步骤和逻辑&#xff1a; 用户获取与留存&#xff1a;首先&#xff0c;APP需要吸引足够的用户并确保他们的留存率。只有拥有庞大且活跃的用户基础&#xff0c;APP才能吸引广告商投放广告。因此&#xff0c;开发者需要通过优化APP质量、提升用…

数字人实训室解决方案

前言 近年来&#xff0c;政策层面的积极推动为数字人产业铺设了坚实的基石。2021年&#xff0c;“十四五”规划将虚拟数字技术纳入其中&#xff0c;强调技术创新引领行业应用的革新&#xff0c;加速数字人在各领域的实际应用。紧接着的《“十四五”数字经济发展规划》进一步明确…

Nodejs 第七十三章(网关层)

什么是网关层(getway)&#xff1f; 技术选型fastify 速度快适合网关层 fastify教程上一章有讲 网关层是位于客户端和后端服务之间的中间层&#xff0c;用于处理和转发请求。它充当了请求的入口点&#xff0c;并负责将请求路由到适当的后端服务&#xff0c;并将后端服务的响应…

一个基于HOOK机制的微信机器人

一个基于✨HOOK机制的微信机器人&#xff0c;支持&#x1f331;安全新闻定时推送【FreeBuf&#xff0c;先知&#xff0c;安全客&#xff0c;奇安信攻防社区】&#xff0c;&#x1f46f;Kfc文案&#xff0c;⚡备案查询&#xff0c;⚡手机号归属地查询&#xff0c;⚡WHOIS信息查询…

有哪些地图采集软件可以采集商家数据导出功能?

1.国内商家采集 寅甲地图数据采集软件 寅甲地图数据采集软件一款多关键词多城市同时采集百度地图、360地图、高德地图、搜狗地图、腾讯地图、图吧地图、天地图商家、公司、店铺的手机、座机、地址、坐标等数据信息的软件。 2.国外商家采集 寅甲谷歌地图数据采集软件 专为做…

叶面积指数(LAI)数据、NPP数据、GPP数据、植被覆盖度数据获取

引言 多种卫星遥感数据反演叶面积指数&#xff08;LAI&#xff09;产品是地理遥感生态网推出的生态环境类数据产品之一。产品包括2000-2009年逐8天数据&#xff0c;值域是-100-689之间&#xff0c;数据类型为32bit整型。该产品经过遥感数据获取、计算归一化植被指数、解译植被类…

完成商品SPU管理页面

文章目录 1.引入前端界面1.将前端界面放到commodity下2.创建菜单3.进入前端项目&#xff0c;使用npm添加依赖1.根目录下输入2.报错 chromedriver2.27.2的问题3.点击链接下载压缩包&#xff0c;然后使用下面的命令安装4.再次安装 pubsub-js 成功5.在main.js中引入这个组件 4.修改…