asp留言板源代码
ASP入门,傻瓜操作版留言板制作(含分页)!
本文旨在告诉新手如何自己动手制作一个留言板并整合进你的网站里,并巩固与学习ASP知识,高手请绕道。
此文包含留言板与分页内容本文不进行ASP语法讲解,因为网上这类的教程太多了,只需要按照步骤来,那么只要你会用table,就会做它,并且完全可自定义样式与模式,同时学习ASP知识,了解动态网站的原理,好了废话说的太多了,我们开始吧:首先,先看看我的留言板是怎么做的/liuyan/gyzz.asp#给我留言,这是我将我的留言板整合网站系统里的样子,从这里可以看出,你可以把这样的东西放在网站任何一个地方,不止留言板,其他的东西也可以以此类推。
看完了留言板之后,咱们开始制作!第一步,设计版面,你可以自己大脑里构思或者用PHOTOSHOP设计,这是我的设计图:第二步:用Dreamweaver或者Frontpage(我是用Frontpage的)打开ly.html然后在里面做出留言板的框架,至于做框架的步骤我就不说了,如果这个都不会那我实在不好说了,然后再定义一下CSS,如下图:第三步:做好了框架以后切换到代码编辑模式,在代码最顶端加入如下代码:<%@LANGUAGE="VBScript" codepage="936"%><!--#include file="conn.asp"--><%set rs=server.createobject("adodb.recordset")sql="select user,qq,shijian,neirong,huifu,yc,id from main order by id desc" rs.open sql,conn,1,1rs.pagesize=20 '是行数tatalrecord=rs.recordcounttatalpages=rs.pagecountrs.movefirstnowpage=request.querystring("page")if nowpage&"x"="x" thennowpage=1elsenowpage=cint(nowpage)end ifrs.absolutepage=nowpagen=1%>第四步:在代码编辑模式下找到“测试一下”字样,将其替换为<%=rs("user")%>,找到“哈哈哈”字样,将其替换为<%=rs("neirong")%>,找到“1111”字样,将其替换为<%=rs("qq")%>,找到“2009”字样,将其替换为<%=rs("shijian")%>,找到“第1条留言”字样里的“1”,将其替换为<%=rs("id")%>,找到“笑什么笑”字样,将其替换为<%=rs("yc")%><%=rs("huifu")%>。
ASP 留言簿
ASP 留言簿随着IT技术的发展,留言簿在人们生活中的应用也越来越多,人们可以通过留言薄的形式给你留言。
本练习中主要实现留言簿的两个功能:留言信息的添加和查看。
Addmessage.asp和SaveMessage.asp实现留言信息的添加功能,ShowMessage.asp 实现留言信息的查看功能。
(1)新建名称为message.mdb的Access数据库,单击鼠标右键,在弹出的快捷菜单中选择【Microsoft Access 数据库】并重命名为message.mdb。
(2)新建messageTable数据表,打开message.mdb数据库,选择【创建】|【表】弹出新建表表设计器,添加留言所用到的字段,如图9-1所示。
图9-1 新建messageTable数据表(3)创建一个命名为addMessage.asp的ASP页面,主要实现留言内容的添加。
左键单击【文件】|【新建】命令,弹出【新建文档】对话框,在对话框的【文件类型】中选择【ASP VbScript】,【布局】中选择【无】,单击【创建】按钮。
(4)左键单击【文件】|【保存】命令,弹出另存为对话框。
在对话框的【文件名】中输入addMessage.asp,【保存类型】的下拉列表框中选择“Active Server Pages(*.asp;*.asa)”,单击【保存(S)】按钮。
(7)创建一个命名为SaveMessage.asp的ASP页面,主要实现留言内容添加到数据库。
左键单击【文件】|【新建】命令,弹出【新建文档】对话框,在对话框的【文件类型】中选择【ASP VbScript】,【布局】中选择【无】,单击【创建】按钮。
(8)左键单击【文件】|【保存】命令,弹出另存为对话框。
在对话框的【文件名】中输入SaveMessage.asp,【保存类型】的下拉列表框中选择“Active Server Pages(*.asp;*.asa)”,单击【保存(S)】按钮。
Dreamweaver+ASP_VBScript+ACCESS留言板设计
ASP VBScript+ACCESS留言板设计准备工作:安装好ASP服务器(IIS)和ACCESS数据库,配置IIS本地根目录为D:\MyWeb1.建立Access数据库打开ACCESS软件,新建一空白数据库,ACCESS会提示先保存数据库,定位到你的留言本所在文件夹,保存为data.mdb。
数据库设置:ID:设为主键,确定数据唯一性以保证在管理时能准确定位到相应记录Name:字段大小设为15(名字没有这么长的)Email:字段大小为20(Email地址的长度)ICON:字段大小为255Hpage:字段大小为30(很多朋友还在用二级甚至三级的域名,所以放宽一点)Date:默认值为Now ()(用Now()取得插入新记录时系统的时间)如下图,关闭并保存为main再创建表admin,以保存管理帐号,保存为admin,如下图:2.创建主页并连接数据库在Dreamweaver中新建一页,保存为index.asp,并修改页面标题为“留言板首页”,如下所示;插入一个5行1列的表格,设置宽度为650像素,边框为1,在属性选择居中对齐,在其中继续插入表格,最终效果如下图:连接数据库:按窗口打开服务器行为面板,看那四项中的前三项前是否有勾号,如果没有就是相应项在定义站点是没设置好,重新编辑Dreamweaver的站点,如果有就开始创建记录集,在服务器行为面板上单击"+"号,定义连接数据库字符串。
按数据库弹出的菜单点:自定义连接字符串"按钮,在"自定义连接字符串"对话框中填写连接名称conn,连接字符串:"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:aspguestbookdata.mdb"然后按测试,软件自动的生成和数据库的连接的conn.asp文件(Connections文件夹内)创建记录集,点绑定出来菜单,点记录集按如下图选择,这样就完成了连接数据库的工作。
简单ASP语言做留言板(一看就会 附图)
一、安装与调试常听朋友感叹ASP程序难学不易懂,不过我起初学习这门技术的时候也有过这样的感悟。
从今天开始,我将以我学ASP的经验来做一个简单的ASP留言本,这个留言本用了Access数据库,所以务必请大家要跟我一起做的朋友都安装好Office软件,相信各位自己的电脑上都有了。
好了,开始。
创建ASP的运行环境(安装IIS)IIS(Internet Information Service)是构建ASP站点所必须的,所以,我们应该先确认自己的电脑已安装了IIS信息服务,如果没有安装好的话,请按以下步骤:1、打开“控制面板”2、双击“添加/删除程序”3、单击“添加/删除Windows组件”,打开添加/删除Windows组件对话框:3、从下拉的列表中选择“Internet 信息服务(IIS)”单击“下一步”:4、出现组件安装进度窗口,如弹出需要安装盘的话,放入Windows2000安装盘,按提示操作即可。
直至最后安装完毕。
二、设计数据库ASP程序本身并不能储存数据,众所周知,留言本有以下信息需要保存:留言者姓名、联系方式、留言内容等等。
因为ASP并不能储存数据,所以数据库在这种环境之下就产生了。
数据库的种类也很多,针对不同的程序也有适用于它的数据库,比如Access 和Ms SQL就比较适用ASP和程序,至于其它的数据库和程序,就不属于本文所讨论的问题了,有兴趣的朋友可以查看其它一些资料。
那么既然Access和MS SQL都适用ASP,那么具体又如何来选择呢?我们可以打一个比方:比如钉一枚小钉子,聪明的人一定不会用一个大的棒槌,而是选择小的铁锤,虽然用大的棒槌也一样的可以把钉子钉进去,可是没有人愿意这样做。
数据库也一样:Access比较适用小型的应用,而MS SQL则适用于大中型的数据库应用,所以要做一个留言本,理所当然是选择Access更好一些,但是如果你决心使用MS,没有人会极力阻止你。
好了,废话少说,切入正题,下面开始创建数据库。
ASP XML留言本
ASP XML留言本留言板模块是网站上常见模块之一,是为广大浏览者提供的一个发表言论、学习交流的一个平台。
此例中,我们就以XML作为存放留言的数据库文件。
本案中包含三个文件,in dex.asp用于读取及显示留言,PostNew.asp用于签写新的留言,最后一个文件List.xml则是用于存放已经发布的留言。
(1)我们先建立一个名为ASPMessage的文件夹,本例所有用到的文件均放在此文件下。
在“ASPMessage”文件夹下建立index.asp文件。
该文件用于读取及显示留言页面。
具体实现代码如下:(4)在“E:\flyweb\FirstChapter\ASPMessage ”文件夹下建立PostNew.asp 文件。
该文件 objRootsite 对象所对应的节点为<NewList>objRootsite.childNodes.item(StarNodes)所对应的节点,就是<list>节点因为不至一个<list>节点所以用了item()来识别当前节点数据。
用于签写新的留言。
具体实现获取表单提交进来的留言信息的代码如下:(6)根据得到的数据建立XML片段,建立一个新的XML对象,然后将XML片段插图7-18 留言签写效果图7-19 留言成功效果(9)在ASPMessage文件夹下建立Lsit.xml文件。
该文件用于存储留言内容。
以下为此文件的源码:记,<fromwhere>标记为存储留言者来自地区标记,<Posttime>标记为存储留言时间标记,< homepage>为留言者主页标记,<email>标记为存储留言者电子邮箱标记,<text>标记为存储留言内容标记。
如果有留言,该文档的内容将自动变化为如下内容:(11)如果多添加几条留言信息,则最终留言本显示效果如图7-20所示: 图7-20 留言显示效果如果系统没有找到lsit.xml 文件,或xml 文件内没有规范的xml 标记,则系统会提示“Microsoft VBScript 运行时错误 (0x800A01A8)缺少对象: 'ObjXML.document Element'”错误。
一个简单的留言板代码
一个简单的留言板代码<!DOCTYPE html><html><head><meta charset='utf-8'></head><body><h1>留言板</h1><!--以下为读取留言要用的 PHP 代码 --><?php// 连接数据库$conn = mysqli_connect('ip地址', '用户名', '密码', '数据库名')or die('连接数据库失败:' . mysqli_error());// 设置数据库字符集mysqli_query($conn, 'SET NAMES UTF8');// 执行查询$sql = 'SELECT * FROM message ORDER BY created_at ASC'; // 查询语句$result = mysqli_query($conn, $sql) or die('查询数据失败:' . mysqli_error($conn));// 输出数据if (mysqli_num_rows($result) > 0) {// 输出每行数据while ($row = mysqli_fetch_assoc($result)) {echo '<div>';echo '<h3>' . $row['name'] . ' 发表于 ' . $row['created_at'] . '</h3>';echo '<p>' . $row['content'] . '</p >';echo '</div>';}} else {echo '暂无留言!';}// 关闭数据库mysqli_close($conn);><!-- 以上为读取留言结束 --><!-- 以下为发表留言 --><form action="index.php" method="POST"><div><label for="name">昵称:</label><input type="text" name="name"></div><div><label for="content">内容:</label> <textarea name="content"></textarea> </div><input type="submit" value="提交"></form><!-- 以上为发表留言结束 --></body></html>。
留言板代码
<div class="lefta"><span class="red">*</span> 姓 名:</div>
<input type="text" name="fullname" id="fullname" class="long_input">
<form method="post" action="index.php?c=post&f=setok&id=&module_id=23" onsubmit="return to_submit();">
<input type="hidden" id="_to_url" name="_to_url" value="" />
</form>
<script type="text/javascript">
function js_book(rs,id)
{
getid(id).innerHTML = rs;
}
function to_submit()
{
var fullname = getid("fullname").value;
</div>
asp有效防止网站留言板出现垃圾留言-评论实现思路asp留言板制作
asp有效防止网站留言板出现垃圾留言-评论实现思路asp留言板制作代码如下:If DateDiff(“s",request.form("intime1"), Now()) 5 thenresponse.write "SCRIPT language=JavaScriptalert("您的留言速度太快,禁止留言!");"response.write"this.location.href="vbscript:history.back()";/SCRIPT"response.endend if二.验证码代码如下:yz=cstr(request.Form("yz"))yz1=cstr(session("yz1"))if yz1yz thenResponse.Write("script language=javascriptalert("请正确输入验证码!");/script")response.redirect("sign.asp")end if三.判断来路代码如下:server_v1=Cstr(Request.ServerVariables("HTTP_*****"))"Response.Write(server_v1)server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) "Response.Write(server_v2)if mid(server_v1,8,len(server_v2))server_v2 thenResponse.Write("script language=javascriptalert("禁止外部提交数据!");/script")response.endend if四.设置每日提交次数代码如下:"当用户每提交一次if request.cookies("postnum")="" thenresponse.cookies("postnum")=1response.cookies("postnum").expires=DateAdd("h", 24, Now())elseresponse.cookies("postnum")=request.cookies("postnum")+1 end ifif request.cookies("postnum") 3 thenresponse.write "SCRIPT language=JavaScriptalert("今天留言次数超过限制,禁止留言!");"response.write"this.location.href="vbscript:history.back()";/SCRIPT"response.endend if五.禁止IP代码如下:server_ip=Cstr(Request.ServerVariables("REMOTE_ADDR")) if right(server_ip,8) = "194.165." thenresponse.write "禁止重叠提交194.165."response.End()end if1、判断该发布信息是否有可靠的来路。
一个在ASP.NETMVC框架下开发的留言本示例(1)
⼀个在MVC框架下开发的留⾔本⽰例(1)刚刚学了⼏天的MVC框架⾃⼰也试着做了⼀个留⾔本的⽰例⼩程序,初步的了解了⼀下MVC框架的功能。
通过这个⽰例了解了MVC框架中的⼏个有⽤的东西。
1、HandleErrorAttribute(MVC框架内置的页⾯错误处理Filter)这个内置的处理错误的功能很简单,只能在当页⾯出现错误的时候把错误信息收集起来,并显⽰友好的错误提⽰的View(需要在web.congfig 中配置是否启⽤友好错误提⽰的customErrors节点)。
在⽤ MVC 框架模板创建web应⽤程序时会⾃动⽣成⼀个\Shared\Error.aspx 的View。
但是这个默认的错误处理功能没有实现对错误⽇志的记录,所以我们可以通过继承HandleErrorAttribute,来实现⾃⼰的MyHandleError。
MyHandleError当然我们还可以近⼀部增强这⼀部分的处理功能,⽐如将错误信息格式化的存⼊到⼀个xml⽂件中或者数据库中,这样我们就可以实现更多对错误⽇志进⾏分析和处理的⽅法了。
2、IModelBinder(对复杂类型的内置模型绑定器接⼝)通过实现这个接⼝我可以在提交表单的时候⽤,这样的代码来接收我们提交过来的数据,如:public ActionResult UserSave(User objUser)这个接⼝就相当于实现了⼀个由表单数据到业务对象数据的⼀个转换。
这样可以使得Controller中的代码更简洁更清晰。
UserBinder要使⽤这个绑定器,我们就需要先注册它,关于如何注册和更详细的使⽤⽅法可以看的内容。
3、Html.DropDownList(⽤于⽣成select的辅助⽅法)该⽅法⼀个重要的参数就是SelectList,它相当于DropDownList的数据源。
我们可以指定这个DropDownList的value和text还可以指定他的当前选中项,如:定义⼀个SelectList我们在前台页⾯上就可以这样引⽤<%=Html.DropDownList("Page", this.PageArray)%>以上所有代码都是基于 MVC Beta版的,⽬前⽰例代码还不完善,没有权限判断上的内容,以后有⼼得后再继续完善。
ASP最简单的留言本
ASP最简单的留言本一、建立文件!最简单的论坛也要有几个必要的文件,就是:1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp3、发表帖子的文件----命名为:say.asp4、保存发表帖子内容的文件-----命名为:save.asp5、显示帖子标题的文件------命名为:index.asp6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp"注:一定要用双引号,不然建立出来的文件还说txt 后缀的二、各文件的主要内容1、bbs.mdb打开这个数据库,就是Access建立一个表,命名为bbs该表中有几个字段:id(自动给帖子编号),他的数据类型设为“自动编号”name(用来储存发表的作者),数据类型为“文本”title(用来储存帖子的主题),数据类型为“文本”body(用来储存帖子的内容),数据类型为“备注”2、conn.asp源代码为:<%Server.scriptTimeout="10"connstr="DBQ="+server.mappath("bbs.mdb")+";D efaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"setconn=Server.CreateObject("ADODB.connection") conn.open connstr%>这个文件也没有什么好说的,就是建立和数据库文件的连接,"bbs.mdb"就是我们刚才建立的数据库文件3、say.asp源代码为:<form method="POST" action="save.asp"><p>大名:<input type="text" name="name" size="20"></p><p>标题:<input type="text" name="title" size="91"></p><p>内容:</p><p><textarea rows="11" name="body" cols="97"></textarea></p><p> </p><p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p></form>大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面不过要注意这一句<form method="POST" action="save.asp">,他把用户所填的内容发送至save.asp这个文件,下面就看save.asp这个文件吧!4、save.asp源代码:<!--#include file="conn.asp"--><%name=Replace(Request.Form("name"),"'","''" )title=Replace(Request.Form("title"),"'","''" )body=Replace(Request.Form("body"),"'","''") %><%if name="" or title="" or body="" then%> 请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!<%else%><%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")%>发表成功!<a href="index.asp">查看帖子</a> <%end ifset savebbs=nothing%>第一句:<!--#include file="conn.asp"-->,意思是插入conn.asp文件,即与数据库进行连接!asp语句必须用<% %>这个格式包含起来,而插入文件的语句就不用,接下来几句:name=Replace(Request.Form("name"),"'","''") title=Replace(Request.Form("title"),"'","''" )body=Replace(Request.Form("body"),"'","''") “Replace(Request.Form("name"),"'","''")”意思是接收表单中名为name的文本框发来的数据,而“name=Replace(Request.Form("name"),"'","''" )”则是把发来的数据储存在name变量中,如果你这样:“abc123=Replace(Request.Form("name"),"'","' '")”就是把表单中名为name的文本框发来的数据储存在abc123变量中接着:if name="" or title="" or body="" then 判断name、title和body变量中是否没有填写内容,即为"",如果这样,就执行这一语句:“请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!”该语句属于html语法,大家都看得懂的!"<%else%>"就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句:“<%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")% >发表成功!<a href="index.asp">查看帖子</a>”"set save=conn.execute"属于固定的语句,不过savebbs可以自己修改,"="后面的就难解释了:insert into bbs(name,title,body)意思是向名为bbs的表(在建立数据库时已经建立的表)中的name,title,body字段插入,插入什么呢?看接下的values('"&name&"','"&title&"','"&body&"')") values是“值”的意思就是插入向量name,title,body,向量用格式'"&name&"'表示最后:end if就是结束if……thenset savebbs=nothing可以说是关闭掉:set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")5、index.asp源代码:<!--#include file="conn.asp"--><b><a href="say.asp">发表帖子</a></b><br><br> <div align="center"><center><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26"><tr><td width="17%"><b>作者</b></td><td width="83%"><b>主题</b></td></tr></table></center></div><hr size="1"><%i=1set showbbs=conn.execute("select*from bbs order by id desc")do while not showbbs.eof%><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20"><tr><td width="17%"><%=showbbs("name")%> </td> <td width="83%"><ahref="show.asp?id=<%=showbbs("id")%>"><%=sho wbbs("title")%></a></td></tr></table></center></div><hr size="1"><%i=i+1if i>50 then exit doshowbbs.movenextLoopshowbbs.Closeset showbbs=nothing%>主要讲精华部分:set showbbs=conn.execute("select*from bbs order by id desc")意思是:向数据库中的bbs数据表查询数据,并以id排顺序,还有这么一句:<%=showbbs("name")%>就是显示数据表中的name字段的数据,这里的showbbs就是set showbbs=……中的showbbs代码中的i=1和i=i+1if i>50 then exit do showbbs.movenextLoopshowbbs.Closeset showbbs=nothing这几句属于循环语句,这里就不理他,理解了也不太好用,因为他只显示50张贴子!if i>50 then exit do中的50可以修改但我们做论坛必须把帖子分页,又因为分页这个语句太复杂,我想就不讲了,等这一个弄懂了才来弄还有一句很有用的:<ahref="show.asp?id=<%=showbbs("id")%>"><%=sho wbbs("title")%></a>里面的超连接:show.asp?id=<%=showbbs("id")%>,注意:这里的超连接把帖子的id包含了,等一下在show.asp文件中就有用了6、show.asp源代码:<!--#include file="conn.asp"--><%id=request.querystring("id")%><%set show=conn.execute("select*from bbs where id="&id&"")%><a href="index.asp"><b>回到首页</b></a><br><b><a href="say.asp">发表帖子</a></b><br><hr size="1"><table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="180"><tr><td width="21%" height="22"><b>作者:</b><%=show("name")%></td><td width="79%" height="22"><b>主题:</b><%=show("title")%></td></tr><tr><td width="100%" colspan="2" height="158" valign="top"><b><br>内容:</b><%=show("body")%></td></tr></table><%set show=nothing%>劲语句---精华语句:id=request.querystring("id")在讲解index.asp文件的后面已经说到:show.asp?id=<%=showbbs("id")这一句,id=request.querystring("id")就是把地址栏中的id的值读取下来,因为index.asp文件中的超连接点击后,地址栏就为http://…………/show.asp?id=数字,所以show.asp使用id=request.querystring("id")语句把数字读取下来于是接着使用:set show=conn.execute("select*from bbs where id="&id&"")向数据表查询id为这时读取下来的数字的帖子,即where id="&id&"最后<%set show=nothing%>三、一个简单的论坛就这样完成了,挂在我们自己的ASP空间上去试试还有就是所有的文件在同一个目录中。
asp留言板源代码
Function myDangerEncode(myString)
If IsNull(myString) Then myDangerEncode=""'如果myString为空,则赋值空字符串
Else myString=Trim(myString)'去 前后的空格
myString=Replace(myString,Chr(13),"<br>") <br>
myHTMLEncode=myString
End If
End Function
%>
五、css样式文件(guest.css) body{background-color:#FFFFFF}
table,p{font: 12px "宋体","新宋体"; color:#000033}
<!--#Include File="function.asp"-->
<% '下面首先获取提交过来的数据,注意其中会调用函数处理危险字符
Dim strTitle,strBody,strName,strEmail strTitle=myDangerEncode(Request.Form("txtTitle")) strBody=myDangerEncode(Request.Form("txtBody")) strName=myDangerEncode(Request.Form("txtName"))
<tr><td colspan="2"><hr></td></tr>
ASP编程实例_留言本及管理
显示留言5
10,选中 跟贴/应用程序/服务器行 为/+/转到详细页/如右图配置 11,应用程序/服务器行为/+/纪录 集/gt/inc/所有/筛选/=/URL参数/ID, 见右下图; 12,选中 跟贴显示 的表格/服务器行为/显示区域/如果纪 录集不为空则显示/纪录集=gt/ 13,选中跟贴2,3行/重复区 域/纪录集=gt/所有记录 14,在最下边,按回车键输 入:没有跟贴;
显示留言1
1,1行:合并单元格输入:小小留言簿 共有 留言 我要 留言/链接到ly.asp/退出/链接到return.asp 2,应用程序/服务器行为/+/纪录集/lyDisp/inc/所有/高级 分别选中数据库项的ctrl、level、跟贴,并单击WHERE; 在变量/+/创建:MM_ctrl、MM_level、MM_gt,默认值为 0,按照SQL输入, 见下右图,单击 测试 能看见level、跟贴、 Ctrl都为0的留言即可 确定
本章要点
本章的知识点: 1. 以一个实例:留言簿 2. 进一步学习Dreamweaver连接数据库的基本方法 3. 学会DW数据库连接方法学会页面之间的调用方法 本章的技能点: 1. 学会一个具体实例 2. 学会如何设计创建数据库 3. 学会DW编程的举一反三 4. 巩固以前所学的知识 5. 理解DW的局限性 思考与练习-P24
定义DW网站
定义Dreamweaver网站 在某盘下创建站点文件夹,例如E:\myweb\liuyan\ 打开DW,创建一个新页,命名为index.asp; 创建链接:单击 应用程序/数据库/+/自定义链接字 符串//链接名称=inc/链接字串: Provider=Microsoft.jet.oledb.4.0;data source=e:\myweb\liuyan\data\data.mdb/单击 测试/弹 出下右图/确定后,站点多了connections文件夹和 inc.asp文件,
基于ASP.NET的网络留言板的制作
基于的网络留言板的制作网络留言板是为用户提供的发表留言、查看留言回复的便捷功能,已成为普通企业网站、政府网站等类型网站的重要组成部分。
本文通过设计制作一个网络留言板,使读者掌握进行数据库操作的相关技术和代码实现方法。
开发环境:Visual Studio 2010开发语言:C#1. 网络留言板整体设计网络留言板的主要功能包括:普通用户发表、查看留言功能,管理员查看留言功能,管理员后台登录功能,管理员回复留言功能,管理员删除留言功能。
下面我们看一下本项目各个功能的界面,了解本项目的整体设计结构。
显示留言页面,如图1所示。
图1显示留言页发表留言界面,如图2所示。
图2 发表留言页管理员登录界面,如图3所示。
图3 管理员登录留言删除提示界面,如图4所示。
图4 留言删除提示回复留言页面,如图5所示。
图5 回复留言页2. 站点的创建了解了本项目的整体结构,下面开始制作网络留言板。
首先我们要创建一个站点,给站点起一个名称,本项目的站点名称为“网络留言板”。
创建好站点后,打开开发环境Visual Studio 2010,如图6 所示。
图6开发环境在图6所示界面中选择“文件”菜单中“新建”选项中的“网站”命令,选择后打开如图7所示的新建网站对话框。
图7 新建网站对话框在图7中点击“浏览”按钮,在弹出的“选择位置”对话框中选择刚刚创建的站点,选择后点击“打开”按钮,回到图7所示界面。
然后点击图7中的“确定”按钮,完成网站的创建,如图8所示。
图8 新建网站3. 网络留言板数据库设计根据网络留言板的功能,在使用留言板时会产生需要存储的数据,所以我们要对数据库进行设计,本项目使用的数据库为Visual Studio 2010自带的SQL Server 2008数据库。
3.1数据库的创建在图8中选择“文件”菜单中“新建”选项中的“文件”,选择后打开如图9所示添加新项对话框。
图9 添加新项对话框在图9所示对话框中选择“SQL 数据库”,然后点击“添加”按钮,在弹出的图10所示消息框中选择“是”,数据库就自动创建了,并且创建在站点中的“App_Data”文件夹中。
asp_Dreamweaver_access做留言板
创建数据库1、建立一个数据库,名称为“board”2、创建两个表分别为“admin”、“guestboard”3、建立表结构(1)admin表的结构名称数据类型name 文本password 文本(2)guest表的结构(其中guestid为编码,name为名称,title为标题,content为留言内容,reply为回复内容,date为留言日期)名称数据类型guestid 自动编码设置为主键name 文本title 文本content 备注replay 备注默认值为“无回复”date 日期/时间默认值为“now()”4、输入数据(1)admin表的值name列password列admin admin(2)guestboard表的值guestid neme title content replay date1 张三001 你好!(留空)(系统自动填写)留言板首页1、新建一个动态站点,名称1005。
2、在站点内新建一个ASP VBScript 动态页面。
保存文件名为“index.asp”。
设置文档标题为“留言板”。
(1)在首行输入“1005论坛”,设置字体为“华文琥珀”,大小为75,颜色为红色。
切换到“代码”视图,在“1005论坛”旁边加换行标志“<br />”(<span class="STYLE1">1005论坛</span><br />)。
(2)在第二行输入“当前位置:留言板”,设置字体为“华文琥珀”,大小为16,“当前位置:”的颜色设置为灰色(#666666),“留言板”设置为黑色。
单击“编辑”——>首先参数——>常规——>在“允许多个连续的空格”前面打钩。
插入多个空格,将光标移到到右侧,在右侧输入“管理员登陆”,各项属性为默认。
切换到“代码”视图,在“管理员登陆”旁边加换行标志“<br />”。
简单留言板代码
<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>09计算机</title><style type="text/css"><!--.STYLE1 {font-family: "宋体";font-size: 36px;}.STYLE2 {font-family: "宋体"; font-size: 16px; }--></style></head><body><p class="STYLE1">09计算机留言板</p><form method="post" action="liuyan.asp"><table width="600" border="1"><tr><td><input type="hidden" name="task" value="insert">姓名<input type="text" size="20" name="xm" /></td></tr><tr><td><p>留言</p><p><textarea rows="5" cols="80" name="lyq"></textarea></p></td></tr><tr><td height="24"><input type="submit" value="提交"name="B1" /><input type="reset" value="重置"name="B2" /></td></tr></table><p>历史留言</p></form><table width="600" border="1"><tr><td><%set conn=server.createobject("adodb.connection")conn.Open="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("wang.mdb") if request("task")="insert" thenxm=request("xm")sj=date()sj=sj&" "&hour(time())& ":"&minute(time())if request("lyq")=" "thenresponse.write("留言不能为空!")response.endelsely=request("lyq")end ifsqlstr="insert into wang (姓名,时间,留言)values('" & xm &"',# " & sj &"#,'"& ly &"')"conn.execute sqlstrend ifsqlstr="select * from wang order by 时间DESC"set rs=conn.execute(sqlstr)do while not rs.eof%>姓名:<%=rs("姓名")%> </td></tr><tr><td> 留言时间:<%=rs("时间")%></td></tr><tr><td height="22">留言内容:<%=rs("留言")%></td></tr><tr><td><br><%rs.movenextlooprs.closeconn.closeset conn=nothing%></td></tr></table></body></html>数据库设计图:。
留言板开发源代码
package com.litiancms.bean;public class Word {//留言idprivate int id;//留言内容private String word_content;//留言作者private String word_zuozhe;//留言时间private String word_shijian;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getWord_content() {return word_content;}public void setWord_content(String wordContent) { word_content = wordContent;}public String getWord_zuozhe() {return word_zuozhe;}public void setWord_zuozhe(String wordZuozhe) { word_zuozhe = wordZuozhe;}public String getWord_shijian() {return word_shijian;}public void setWord_shijian(String wordShijian) { word_shijian = wordShijian;}}package com.litiancms.dao;import java.util.List;import com.litiancms.bean.Word;public interface WordDao {//留言添加public void addword(Word w)throws Exception;//删除public void delword(int id)throws Exception;// 总共有几条记录public int count() throws Exception;// 总页数public int countpage() throws Exception;// 设置每页显示几条记录public void pagesize(int pagesize) throws Exception;// 分页显示public List<Word> querypage(int page) throws Exception;}package com.litiancms.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DataBase {//用户名这里的用户名指:数据库的用户名public final String UNAME="root";//用户密码这里的密码指:数据库的密码public final String UPWD="admin";//驱动程序public final String DRIVER="com.mysql.jdbc.Driver";//链接地址public final String URL="jdbc:mysql://localhost:3306/ltcms";//链接public Connection conn;//构造方法public DataBase(){try {//加载驱动程序Class.forName(DRIVER);//链接数据库conn=DriverManager.getConnection(URL, UNAME, UPWD);} catch (Exception e) {// TODO: handle exception}}//链接方法public Connection conn(){return this.conn;}//关闭public void close(){try {this.conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}package com.litiancms.factory;import com.litiancms.dao.WordDao;import com.litiancms.impl.Wordimpl;public class WordFactory {public static WordDao getword(){return new Wordimpl();}}package com.litiancms.impl;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import com.litiancms.bean.Word;import com.litiancms.dao.WordDao;import com.litiancms.db.DataBase;public class Wordimpl implements WordDao {//分页显示int pagesize=5;// 定义连接数据库DataBase db = null;// 操作数据库PreparedStatement pstm;//集合ResultSet rs;//sql语句String sql=null;@Override//留言添加public void addword(Word w) throws Exception {// TODO Auto-generated method stub//数据库db=new DataBase();sql="insert into ltcms_word(word_content,word_zuozhe,word_shijian)values(?,?,?)";pstm=db.conn.prepareStatement(sql);pstm.setString(1,w.getWord_content());pstm.setString(2,w.getWord_zuozhe());pstm.setString(3, w.getWord_shijian());pstm.executeUpdate();pstm.close();db.close();}@Override//删除public void delword(int id) throws Exception {// TODO Auto-generated method stub//数据库db=new DataBase();sql="deldet from ltcms_word where id=?";pstm=db.conn.prepareStatement(sql);pstm.setInt(1, id);pstm.executeUpdate();pstm.close();db.close();}@Overridepublic int count() throws Exception {// TODO Auto-generated method stubint count = 0;// 连接数据库db = new DataBase();// sql语句sql = "select count(*)from ltcms_word";pstm = db.conn.prepareStatement(sql);rs = pstm.executeQuery();if (rs.next()) {count = rs.getInt(1);}rs.close();pstm.close();db.close();return count;}@Override// 总共有几页public int countpage() throws Exception { int countpage=0;//拿到总记录数int count=this .count();if (count%pagesize==0){countpage=count/pagesize;}else {countpage=count/pagesize+1;}return countpage;}@Override// 每页显示几条记录public void pagesize(int pagesize) throws Exception {this.pagesize=pagesize;}@Overridepublic List<Word> querypage(int page) throws Exception {// TODO Auto-generated method stubList<Word> lst=new ArrayList<Word>();db=new DataBase();sql="select * from ltcms_word order by word_shijian desc limit ?,?";int start = (page - 1) * pagesize;pstm = db.conn.prepareStatement(sql);pstm.setInt(1, start);pstm.setInt(2, pagesize);rs = pstm.executeQuery();Word w=null;while (rs.next()) {w=new Word();w.setId(rs.getInt(1));w.setWord_content(rs.getString(2));w.setWord_zuozhe(rs.getString(3));w.setWord_shijian(rs.getString(4));lst.add(w);}rs.close();pstm.close();db.close();return lst;}}package com.litiancms.servlet;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.xml.crypto.Data;import org.omg.CORBA.Request;import com.litiancms.bean.Word;import com.litiancms.factory.WordFactory;import com.litiancms.impl.Wordimpl;public class WordServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {PrintWriter out = response.getWriter();String start = request.getParameter("start");String content = request.getParameter("content");String zuozhe = request.getParameter("zuozhe");SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒");String ctime = sdf.format(new Date());Word w = new Word();w.setWord_content(content);w.setWord_zuozhe(zuozhe);w.setWord_shijian(ctime);if ("addword".equals(start)) {try {WordFactory.getword().addword(w);out.println("<script>alert('留言成功');location.href='../servlet/QueyallServlet'</script>");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}// int id = Integer.parseInt(request.getParameter("id"));if ("delword".equals(start)) {try {// WordFactory.getword().delword(id);// 跳转页面// out.println("<script>alert('删除成功');location.href='../servlet/QueryallServlet';</script>");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}package com.litiancms.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.litiancms.bean.Word;import com.litiancms.factory.WordFactory;public class QueyallServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {PrintWriter out = response.getWriter();int pagestart=1;try {Integer count=WordFactory.getword().count();Integer countpage=WordFactory.getword().countpage();String start = request.getParameter("start");if (start != null) {try {pagestart = Integer.parseInt(start);if (pagestart > countpage) {pagestart = countpage;}} catch (Exception e) {// TODO: handle exceptionpagestart = 1;}}// 分页List<Word> lst=new ArrayList<Word>();lst=WordFactory.getword().querypage(pagestart);// 当前页数request.setAttribute("pagestart", pagestart);// 记录数request.setAttribute("count", count);// 总页数request.setAttribute("countpage", countpage);request.setAttribute("lst",WordFactory.getword().querypage(pagestart));request.getRequestDispatcher("../index.jsp").forward(request, response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}添加页面<%@ page contentType="text/html;charset=gb2312"%><script type="text/javascript" src="js/edit.js"></script><br><img src="images/addtitle.jpg"><hr color="#ACCE69" width="90%" style="border-style:solid;margin-top:-10"><a name="addword"></a><form action="servlet/WordServlet" name="editform" method="post"><input type="hidden" name="start" value="addword"><input type="hidden" name="zuozhe" value="游客"><table width="90%" border="0" cellpadding="0" cellspacing="0"><tr><td width="67%"><font color="#7F7F7F">最多:<b><span id="ContentAll" style="width:40;text-align:center">500</span></b>已用:<b><span id="ContentUse" style="width:40;text-align:center">0</span></b>剩余:<b><span id="ContentRem" style="width:40;text-align:center">500</span></b></font> <b><span id="checkmessage" style="color:red"></span></b></td><td align="right"></td></tr><tr><td colspan="2"><textarea rows="12" cols="99" name="content" onpropertychange="checkLen()"></textarea></tr><tr height="30"><td colspan="2" align="center"><input type="button" name="submitb" onclick="editformsubmit()" style="background:url('images/submit.jpg');width:97;height:26;border:0"><input type="reset" value="" style="background:url('images/reset.jpg');width:97;height:26;border:0"></td></tr></table></form><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="java.text.SimpleDateFormat"%><%@ taglib prefix="c" uri="/jsp/jstl/core" %><%@ taglib prefix="fmt" uri="/jsp/jstl/fmt" %><%@ taglib prefix="pg" uri="/tags/navigation/pager" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><style type="text/css">body{padding: 0px;margin: 0px;}</style></head><body><center><jsp:include page="top.jsp"></jsp:include><jsp:include page="menu.jsp"></jsp:include><table border="0" width="80%" align="left"><tr><td align="right" width="20%"><img src="images/ad.jpg"><br><br><img src="images/ad.jpg"><br><br><img src="images/ad.jpg"><br><br></td><td valign="top" width="80%"><table border="0" width="90%" cellpadding="0" cellspacing="0"><tr height="50" valign="bottom"><td><img src="images/newtitle.jpg" height="28"></td></tr></table><c:forEach items="${requestScope.lst}" var="w"><table bgcolor="#ACCE69" border="0" width="80%" style="word-break:break-all;margin-top:3" cellpadding="8" cellspacing="1"><tr bgcolor="#F5FFE8"><td><%SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");String ctime=sdf.format(new Date());request.getParameter(ctime);request.setAttribute(ctime,new Date());%><div style="margin-top:0">☆<b><u>${w.word_zuozhe }</u></b></div><div style="margin-top:-20;color:gray" align="right"><%//<fmt:formatDate value="${ctime}" var="dd"/>//<fmt:setLocale value="zh_CN"/>//${dd}%>${w.word_shijian }<br></div><input type="hidden" name="start"><hr color="black">${w.word_content }<br><br></td></tr></table></c:forEach>总计录数:<font color="red">${requestScope.count}</font> 当前页数:<font color="red">${requestScope.pagestart}/${requestScope.countpage}</font> <c:choose><c:whentest="${requestScope.pagestart==1&&requestScope.pagestart<requestScope.countpage}"> 首页 上一页 <a href="servlet/QueyallServlet?start=${requestScope.pagestart+1 }">下一页</a> <a href="servlet/QueyallServlet?start=${requestScope.countpage}">末页</a> </c:when><c:whentest="${1<requestScope.pagestart&&requestScope.pagestart==requestScope.countpage}"><a href="servlet/QueyallServlet?start=${requestScope.pagesize}">首页</a> <a href="servlet/QueyallServlet?start=${requestScope.pagestart-1}">上一页</a> 下一页 末页</c:when><c:otherwise><a href="servlet/QueyallServlet?start=1">首页</a> <a href="servlet/QueyallServlet?start=${requestScope.pagestart-1}">上一页</a> <a href="servlet/QueyallServlet?start=${requestScope.pagestart+1 }">下一页</a> <a href="servlet/QueyallServlet?start=${requestScope.countpage}">末页</a> </c:otherwise></c:choose><%--<a href="servlet/QueyallServlet?start=${pagesize}">首页</a> <a href="servlet/QueyallServlet?start=${pagestart-1}">上一页</a> <a href="servlet/QueyallServlet?start=${pagestart+1 }">下一页</a> <a href="servlet/QueyallServlet?start=${countpage}">末页</a> --%><jsp:include page="addword.jsp"></jsp:include></td></tr><tr><td colspan="2"><jsp:include page="end.jsp"></jsp:include></td></tr></table></center></body></html>。
1、简易动态留言板(实现留言功能)
8、保存,预览。实现留言功能
4、点击数据库“+”按钮,选择数据源名称。
如下图:
在此之前要配置好ODBC数据源
5、这时开始编辑首页index.asp文件,分别插入表单、两行两列的表格。并插入表单→文本域/文本区域,在插入一个按钮。ID必须要跟数据库一样。
如下图:
6、点击绑定,单击“+”记录集(查询),并确定。
如下图:
7、点击服务器行为,单击“+”插入记录,并确定。
实现留言功能
(名字随意,切记不要用中文命名。)
1、创建一个guestbook文件夹
2、在gu保存。(因name字段名称在Access中是保留字,所以要重新命名。如:names……)
如下图:
3、打开DW新建一个站点并新建一个ASP VBSript文档,Ctrl+S保存为index.asp
简单留言板代码
简单留言板代码篇一:留言版代码ASP留言板源代码:有主页,回复和删除三个版面主程序htmlheadtitle业牧粞员?lt;/titlemeta http-equiv=Content-Type content=text/html; charset=gb2312 /headscript language=VBScriptsub check()if erid.value=empty thenmsgbox 请输入您的昵称!focusto(0)exit subend ifif form.email.value=empty thenmsgbox 请输入您的E-mail地址!focusto(1)exit subend ifif instr(form.email.value, @)=0 thenmsgbox 您的E-mail地址不正确,是不是记错了?再想想!focusto(1)exit subend ifif form.content.value=empty thenmsgbox 请输入您的留言内容!focusto(5)exit subend ifform.submitend subsub focusto(x)document.form.elements(x).focus()end sub/scriptbody bgcolor=#CCFFCC text=#333333table width=90% border=0 bordercolorlight=#E2F3F2 height=77 align=centertrtd height=47 colspan=2 bgcolor=#00FFFFdiv align=center font face=华文行楷size=+6font color=#FF0000 face=行楷strong留言本/strong/font/font/div /td/trtrtd colspan=2 height=2p align=centerfont face=隶书size=+2font face=楷体_GB2312ba href=show.aspfont size=+1查看留言/font/a/b/font /font/p/td/tr/tabletable width=90% border=0 align=centertr bgcolor=#E2F3F2 align=center valign=middletd height=385form action=show.asp method=post name=form id=formtable align=center bgcolor=#E2F3F2 border=1cellpadding=0 cellspacing=0 width=100%tbodytr bgcolor=#CCFFCCtd width=96 height=34div align=centerfont color=#0000FF昵称:/font/div/tdtd width=441 height=34input maxlength=30 name=useridfont color=#FF0000* /font/td/trtr bgcolor=#CCFFCCtd width=96 height=35div align=centerfont color=#0000FF伊妹儿:/font/div/tdtd width=441 height=35 colspan=3input type=text name=emailfont color=#FF0000* /font/td/trtr bgcolor=#CCFFCCtd width=96 height=36div align=centerfont color=#0000FF主题:/font/div/tdtd width=441 height=36 colspan=3input maxlength=200 name=subject size=40/td/trtr bgcolor=#CCFFCCtd width=96 height=36div align=centerfont color=#0000FF你的QQ:/font/div/tdtd width=441 height=36 colspan=3input name=qq type=text id=qq maxlength=10/td/trtr bgcolor=#CCFFCCtd width=96 height=37div align=centerfont color=#0000FF 你的主页:/font/div/tdtd width=441 height=37 colspan=3input name=site type=text id=site value=/td/trtr bgcolor=#CCFFCCtd width=96 height=147div align=centerfont color=#0000FF留言内容:/font/div/tdtd width=441 height=147 colspan=3textarea cols=50 name=content rows=12/textarea/td/trtr align=middle bgcolor=#CCFFCCtd height=56 colspan=4div align=centerinput name=button1 type=button value= 发表onclick=check() input name=button2 type=reset value= 重写/div/td/tr/tbody/table/form/td/tr/table/body/html保存程序%@ language=VBScript%htmlheadtitle保存留言/titlemeta http-equiv=Content-Type content=text/html; charset=gb2312 /headbody bgcolor=#CCFFCC text=#0000FFp align=centerstrongfont color=#FF0000 size=+6 face=行楷我的留言本/font/strong/p%'获得表单内的信息userid = Request.Form (userid)title= Request.Form(subject)site=Request.Form(site)content= Request.Form(content)email=Request.Form(email)wtime=now()from=Request.ServerVariables(REMOTE_ADDR)email=a href=mailto: & email & & email & /aif title= thentitle=无标题end ifOn Error Resume NextApplication.Lock'以ForAppending模式开启留言文件set fso = CreateObject(Scripting.FileSystemObject)'取得save和oldsave两个文件的完整路径filepath=server.MapPath(save.txt)oldfilepath=server.MapPath(oldsave.txt)'将save改名为oldsavefso.CopyFile filepath ,oldfilepath'打开oldsave文件set readf=fso.OpenTextFile(oldfilepath,1,true)t=readf.ReadAll'打开save文件set showf=fso.CreateTextFile(filepath,true)'将新的留言内容添加(append)到留言文件中showf.WriteLine arrow & b留言者/b:& userid & brshowf.WriteLine arrow & b伊妹儿/b>:& email & brshowf.WriteLine arrow & b来自于/b:& from & br showf.WriteLine arrow & b发表日期/b:& wtime & brshowf.WriteLine arrow & b留言者主页/b:& site & brshowf.WriteLine arrow & b留言标题/b:& title & brshowf.WriteLine arrow & b留言内容/b:& content & pshowf.WriteLineshowf.WriteLine hr' 读出oldsave的内容,写入save中showf.WriteLine t'关闭oldsave文件readf.Close'删除oldsave文件fso.DeleteFile oldfilepath,trueApplication.UnLock'顺便将留言内容输出到浏览器中Response.Write h3Response.Write 以下是i & userid & /i 的留言内容:Response.Write /h3hrResponse.Write arrow & b来自于/b:& from & br Response.Write arrow & b伊妹儿/b :& email & brResponse.Write arrow & b发表日期/b:& wtime & br Response.Write arrow & b留言者主页/b:& site & br Response.Write arrow & b留言标题/b:& title & brResponse.Write arrow & b留言内容/b:& content & p Response.Write hr%p align=center点击 A href=show.aspfont color=#FF00FF这里/font/A,font color=#0000FF查看所有留言!/font/p /body/html显示程序@ language=VBScript%htmlheadtitle所有留言/titlemeta http-equiv=Content-Type content=text/html; charset=gb2312 /headbody bgcolor=#CCFFCC text=#0000FFp align=centerfont face=华文行楷size=+6font color=#FF0000 face=行楷strong留言本/strong/font/font /phrp align=center /p%on error resume nextset fso = CreateObject(Scripting.FileSystemObject)filepath=server.MapPath(save.txt)set showall=fso.OpenTextFile(filepath,1,true)t=showall.ReadAll篇二:网上留言簿jsp实现(附所有代码)计算机与信息学院《计算机网络系统实践》报告设计题目:网上留言簿的设计与实现学生姓名:学号:专业班级:计算机科学与技术X班2014年1 月二、选做部分题目:网上留言簿的设计与实现1设计要求1.进行网上留言簿的需求分析和功能设计;2.在数据库中构建数据库、表或视图,熟悉数据库开发流程; 3.根据网上留言簿的功能,设计各页面和脚本,掌握动态网页的制作技术;2开发环境操作系统:Windows7数据库:SQL Server 2005开发平台:MyEclipse 8.63基本原理1、Web编程Web编程简单地说是基于WWW的Internet上的应用程序开发,随着Internet的普及与传播,越来越多的人通过WWW走进网络世界的大门。
留言版程序设计
留言版程序设计<script language="VB" runat="server">sub enter_click(sender as object,e as eventargs)application.lockapplication("show")=pronunciation.text & "<br>" &application("show")application.unlockpronunciation.text=""end sub</script><html><body><form runat="server">请发言:<asp:textbox id="pronunciation" columns="30" runat="server"/> <asp:button text=" 发送 " onclick="enter_click" runat="server"/></form></body></html><script language="vb" runat="server">sub page_load(seder as object,e as eventargs)message.text=application("show")end sub</script><html><head><meta http-equiv="refresh" content="5"></head><body><asp:label id="message" runat="server"/></body></html><script language="VB" runat="server">sub enter_click(sender as object,e as eventargs)application.lockapplication("show")=pronunciation.text&"<br>"&application("show") application.unlockpronunciation.text=""end sub</script><html><body><form runat="server">请发言:<asp:textbox id="pronunciation" columns="30" runat="server"/> <asp:button text=" 发送 " onclick="enter_click" runat="server"/></form></body></html>上面三个文件组合可以实现最简单的留言版功能.但是要显示用户名、时间、身份等等细节,还需要添加session或cookies等对象总之这只是一个基础.用于供广大刚接触的同志们学习,进而不断完善.如果大家谁有源代码,欢迎共享,让我们这些webbird一起成长.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a:hover{color: #FF0033; text-decoration: underline}
六、首页文件(guest.asp)
<%
'==============================================================================
>
<tr><td>时间</td><td><%=rs("dtmSubmit")%></td></tr>
<tr><td></td><td><ahref="delete.asp?ID=<%=rs("ID")%>">删除
</a></td></tr>
</table>
<%
rs.MoveNext
Loop
'关闭对象
DimstrTitle,strBody,strName,strEmail
strTitle=myDangerEncode(Request.Form("txtTitle"))
strBody=myDangerEncode(Request.Form("txtBody"))
strName=myDangerEncode(Request.Form("txtName"))
Server.MapPath("guest.mdb")
conn.OpenstrConn
%>
三、配置文件(config.asp)
<%
ConstconGuestTitle="我的留言板" '显示在首页中留言板的名称
ConstconPwd="12456" '是删除留言的密码
%>
----------------------- Page 2-----------------------
----------------------- Page 6-----------------------
'3.本页会调用样式文件guest.css设置有关文字超链接等的样式。
'4.本页会读取config.asp中的配置,显示留言板的名称
'5.在下面显示留言时,会调用function.asp中的函数,对留言主题和内容进行编码,以
便显示HTML代码和实现换行效果。
'==============================================================================
<tr><tdcolspan="2"><hr></td></tr>
<tr><td width="20%">主题
</td><td><%=myHTMLEncode(rs("strTitle"))%></td></tr>
<tr><td>内容</td><td><%=myHTMLEncode(rs("strBody"))%></td></tr>
<html>
<head>
<title>欢迎访问我的留言板</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<linkrel="stylesheet"href="guest.css">
<script language="JavaScript">
==================
%>
<% Option Explicit '强制声明变量%>
<!--#Include File="odbc_connection.asp"-->
<!--#Include File="function.asp"-->
<%
'下面首先获取提交过来的数据,注意其中会调用函数处理危险字符
<tr>
<td><font color="white">主题:</font></td>
<td><input type="text" name="txtTitle" size="60">*</td>
</tr><tr>
<td><font color="white">内容:</font></td>
<td><TextareaName="txtBody" Rows="4" Cols="60"></TextArea></td>
==================
'首页文件
'1.本页主要分为两部分:上面是一个添加留言的表单,表单会被提交到insert.asp;下
面是显示所有留言的部分,就是利用循环显示所有记录而已。
'2.要注意这里在表单中使用了客户端的JavaScript验证,通过验证后才会继续提交表单,
否则就提示用户重新填写。
<td><input type="text" name="txtEmail" size="40"></td>
</tr><tr>
<td></td>
<td><input type="submit" value="提交" Size="20" ></td>
</tr>
</table>
</form>
<%
'以下开显示原有留言,请注意每条留言会显示在一个表格中
----------------------- Page 5-----------------------
<tr><td>留言人</td><td><a
href="mailto:<%=rs("strEmail")%>"><%=myHTMLEncode(rs("strName"))%></a></td></tr
而导致错误。所以这里调用myDangerEncode将其中的单引号替换为了两个连续的单引号。
这样不会发生错误,而且写到数据库中后自然变成了1个单引号。
'==============================================================================
IfIsNull(myString) Then
myHTMLEncode="" '如果myString为空,则赋值空字符串
Else
myString=Replace(myString,"&","&") '替换&为字符实体&
myString=Replace(myString,"<","<") '替换<为字符实体<
rs.Close
Setrs=Nothing
conn.Close
Setconn=Nothing
%>
</body>
</html>
七、添加言文件(insert.asp)
<%
'==============================================================================
===========
'该函数用来对字符串中的危险字符进行处理。
FunctionmyDangerEncode(myString)
IfIsNull(myString) Then
myDangerEncode="" '如果myString为空,则赋值空字符串
Else
myString=Trim(myString) '去前后的空格
==================
'添加留言文件
'1.这里会获取首页提交过来的表单,然后将留言添加到数据库中。
'2.因为内容和E-mail可以省略,所以这里组成SQL语句的代码比较复杂。实际上是分成