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

%> 

连接数据源文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jenkins+sonarqube部署与配置过程

1、部署jenkins&#xff08;本文不做说明&#xff09; 2、部署sonarqube(docker-compose) version: "2.1"services:sonarqube:image: sonarqube:9.9.4-communitycontainer_name: sonarqubedepends_on:- dbports:- 9000:9000networks:- sonarnetenvironment:SONARQU…

集合、Collection接口特点和常用方法

1、集合介绍 对于保存多个数据使用的是数组&#xff0c;那么数组有不足的地方。比如&#xff0c; 长度开始时必须指定&#xff0c;而且一旦制定&#xff0c;不能更改。 保存的必须为同一类型的元素。 使用数组进行增加/删除元素的示意代码&#xff0c;也就是比较麻烦。 为…

深入理解CPU缓存一致性

存储体系结构 速度快的存储硬件成本高、容量小&#xff0c;速度慢的成本低、容量大。为了权衡成本和速度&#xff0c;计算机存储分了很多层次&#xff0c;有寄存器、L1 cache、L2 cache、L3 cache、主存&#xff08;内存&#xff09;和硬盘等。 根据程序的空间局部性和时间局…

【qt】标准型模型 下

标准型模型 一.前言二.预览数据1.获取表头2.获取数据项 三.保存文件1.文件对话框获取保存文件名2.用文件名初始化文件对象3.打开文件对象4.用文件对象初始化文本流5.写入数据 四.格式1.居右2.居中3.居左4.粗体 五.模型的信号1.解决粗体action问题2.状态栏显示信息 六.总结 一.前…

visual studio 2022 ssh 主机密钥算法失败问题解决

 Solution - aengusjiang 问题&#xff1a; I follow the document, then check sshd_config, uncomment“HostKey /etc/ssh/ssh_host_ecdsa_key” maybe need add the key algorithms: #HostKeyAlgorithms ssh-ed25519[Redacted][Redacted]rsa-sha2-256,rsa-sha2-512 Ho…

【C++初阶】vector

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ &#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1…

交叉熵损失函数计算过程(tensorflow)

交叉熵损失函数通常用于多类分类损失函数计算。计算公式如下&#xff1a; P为真实值&#xff0c;Q为预测值。 使用tensorflow计算 import tensorflow as tf import keras# 创建一个示例数据集 # 假设有3个样本&#xff0c;每个样本有4个特征&#xff0c;共2个类别 # 目标标签…

【退役之重学Java】关于B+树索引

一、为什么使用索引 一条数据可能有很多字段&#xff0c;数据量比较大&#xff0c;挨个查询效率极差故使用索引&#xff0c;提高查询性能和加快数据检索速度。同时还可以帮助优化排序、分组和连接操作&#xff0c;提高数据库系统的整体性能和响应速度。 二、为什么要用 B 树 B树…

【全开源】点餐小程序系统源码(ThinkPHP+FastAdmin+UniApp)

基于ThinkPHPFastAdminUniApp开发的点餐微信小程序&#xff0c;类似肯德基&#xff0c;麦当劳&#xff0c;喜茶等小程序多店铺模式&#xff0c;支持子商户模式&#xff0c;提供全部前后台无加密源代码和数据库&#xff0c;支持私有化部署。 革新餐饮行业的智慧点餐解决方案 一…

设计模式—23种设计模式重点 表格梳理

设计模式的核心在于提供了相关的问题的解决方案&#xff0c;使得人们可以更加简单方便的复用成功的设计和体系结构。 按照设计模式的目的可以分为三大类。创建型模式与对象的创建有关&#xff1b;结构型模式处理类或对象的组合&#xff1b;行为型模式对类或对象怎样交互和怎样…

视频怎么转换成二维码图片?视频做成二维码播放的方法

怎样在电脑上制作可以播放视频的二维码呢&#xff1f;很多日常生活中&#xff0c;很多的场景或者物品都会有自己的二维码&#xff0c;其他人通过扫码就可以获取对应的内容。有很多场景下会把视频转换二维码&#xff0c;通过扫码在手机上查看视频内容&#xff0c;比如产品介绍、…

408数据结构-图的基本概念 自学知识点整理

*第六章个人感觉是最难的&#xff0c;请各位抓稳扶手&#xff0c;系好安全带。 图的定义 通俗来讲&#xff0c;一个图由一些点和连接这些点的若干边组成&#xff0c;边的两头必须都有顶点&#xff0c;否则不是图。 注&#xff1a;G: Graph&#xff1b; V: Vertex&#xff1b; …

Hive安装教程

前置条件:hadoop&mysql docker容器安装mysql-CSDN博客 以下的/opt/bigdata目录根据自己实际情况更改 1.上传hive包并解压 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/bigdata/ 2.修改路径 mv /opt/bigdata/apache-hive-3.1.3-bin/ hive cd /opt/bigdata/hive/…

螺旋矩阵的思想

方阵类型 https://leetcode.cn/problems/spiral-matrix-ii/ lc59: 螺旋矩阵&#xff0c; 解题思路 关键点&#xff1a; 上方&#xff0c; 从左到右&#xff1b; 右侧&#xff0c;从上到下&#xff1b; 下方&#xff0c;从右到左&#xff1b; 左侧&#xff0c; 从下往上&…

加密与解密(第四版)】第二十五章笔记

第二十五章 数据取证技术 25.1 硬盘数据的获取和固定 取证专用的Linux可启动光盘 硬盘复制机 利用取证计算机复制硬盘 手机&#xff08;JTAG&#xff09; 电子数据的固定&#xff08;HASH值&#xff09; 25.2 硬盘的分区和数据恢复 25.3 内存分析 25.4 动态仿真技术 25.…

SpringBoot——整合Thymeleaf模板

目录 模板引擎 新建一个SpringBoot项目 pom.xml application.properties Book BookController bookList.html ​编辑 项目总结 模板引擎 模板引擎是为了用户界面与业务数据分离而产生的&#xff0c;可以生成特定格式的页面在Java中&#xff0c;主要的模板引擎有JSP&…

探索Python编程世界:从基础到实战

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、Python语言简介与动态特性 代码示例&#xff1a;动态类型与变量命名 二、Python应用领…

【软件设计师】大题

一、数据流图 基础知识 数据流图&#xff08;Data Flow Diagram,DFD&#xff09;基本图形元素&#xff1a; 外部实体&#xff08;External Agent&#xff09; 表示存在于系统之外的对象&#xff0c;用来帮助用户理解系统数据的来源和去向加工&#xff08;Process&#xff09;数…

犀牛8 for Mac/Win:重塑三维建模的新标杆

在数字创意的浪潮中&#xff0c;犀牛8&#xff08;Rhinoceros 8&#xff09;作为一款卓越的三维建模软件&#xff0c;以其强大的功能和出色的性能&#xff0c;在Mac和Windows平台上都赢得了广大设计师和工程师的青睐。 犀牛8不仅继承了前代产品的优秀基因&#xff0c;更在细节…

从 0 开始本地部署大语言模型

1、准备 ● Ollama&#xff1a;ollama.com ● Docker&#xff1a;https://docs.openwebui.com/ 2、下载 Ollama 进入 Ollama 官网&#xff0c;点击 Download 。 下载完成后&#xff0c;双击安装&#xff0c;什么都不需要勾选&#xff0c;直接下一步即可。安装完成&#xf…