第一篇:网站留言板留言板简易教程
用Dreamweaver MX设计超简留言本
初学者在学ASP的时候往往是无从学起,学理论的时候又太抽象不好懂,实践的时候又找不到合适的例子来分析练习,有时候找到一个源程序学习的时候,功能太繁杂,涉及到的ASP模块太多,也附带了不少的函数,这样使初学者一头雾水,知难而退,实际上ASP是比较容易掌握的,今天就是为了这个目的,剥茧抽丝做了一个非常简单的留言板,只有留言,删除和回复的功能,没有管理权限功能(站长登录,修改密码等)、判断功能(表单验证等)及分页功能,简洁干炼,主要是为了初学者掌握最重要的知识,就是如何抓取数据库以及如何查看、删除、修改记录的操作,我们先从这个超级简单的留言板开刀吧,此关只要能过,恭喜您了,将来即可步入ASP应用的行列了!:)本教程
完成后会提供下载!
首先我们先做准备工作,先做一下策划,看看我们可能要做哪些页面,所谓说好的开始就是成功的一半,所以大家不要急着做,听我慢慢讲来。为了让大家都能制作出自己的留言板,尽量实现一个网页一个功能模块,我们就做以下六个网页:
一、index.asp----首页即显示留言页
二、conn.asp----公共网页,每个网页都要包含它,是连接打开数据库的操作。
三、write.asp和save.asp----分别是发表留言的表单网页和保存留言页。
四、del.asp----删除留言页
五、reply.asp----回复当前留言页
做好的留言板效果图如下:
< P>
好了,说到这里我们可以动工了,首先做一个最重要的工作,就是建立起一个数据
库,将来存放网友的留言所用。
1、数据库名:db1.mdb
2、数据库表:只有一个表:book
3、数据表book里增设以下字段,见图1
说明:·任一字段的数据类型中的“常归”项中的“允许空字符串”最好填“是”
·日期/时间的“常归”项中默认值为Now();站长回复里的“常归”项中的默认值为“暂没有回复”,注意此处要加双引号,是半角而不是全角。
数据库建好后开始做公共网页,用来打开数据库,打开Dreamweaver MX,按如下方
法新建动态ASP网页:
并保存为CONN.ASP,在编辑区里切换到显示代码视图里,注意把第一行自动生成的代码删掉。
这次主要是写连接数据库和参数设置的ASP代码,不用输出什么HTML标签,所以把代码全部删掉,用DREAWMEAVER插入栏自带的ASP对象写入以下代码,ASP栏里没有的代码只能自己手写输入了。
注意要把所有要编译的ASP代码放在<% %>之间,这样才能正常运行,否则会出错!这是基本常识哦。让我解释以上代码的意思吧:
代码第一行: 用来建立connection对象,connection对象扮演着十分重要的前期连接工作,连接成功数据库才会有以后的数据操作功能。
代码第二行:设置数据库连接参数。包括有数据库驱动程序和数据库文件名。
代码第三行:用conn连接对象打开数据库。
这些是通用连接数据库的方法,任何需要打开数据库的动态网页都可以照搬以上代码就行了,只把数据库的名字换成你的数据库名字就行了,注意路径要正确。所以可以把这些代码用Dreawmeaver里的代码片断复制下来,以后直接插入就可以用了,比较方
便,也不用记忆,这是一个小技艺吧!
好了,今天就先说到这里。
有什么错误和更好的建议也希望你能到腾风在线论谈提出来。
现在我们继续前面的内容。
新建动态网页index.asp:先在设计视图里排版好一个留言板的界面,设计好的页
面效果图如下:
下面表格规划和显示都很清楚,一目了然,什么排版的我就不说了吧:),这可是基本功啊,如果不行的话可先学好Dreamweaver,再来学ASP哦!稳打稳进,至理名言^_^.如果想偷懒的话,可以直接下载源代码,学习研究ASP代码也可以啊,我不反对哦,至少我也是这么懒的,理解万岁!:)
排好版后再进入代码视图里,在不同的位置插入以下ASP代码:如下图:
在网页代码的最上面第一行,点击用红线圈起来的标志可以插入第一行的代码,并可以浏览到具体文件上,比较方便,注意选择file文件类型的,不是virtual虚拟类型的。这样就插入了conn.asp数据库连接代码页,此代码被包含在当前网页位置中进行正常编译,不用重复写数据库连接代码,它的好处很大哦,使页面结构化,容易修改和维护,如果数据库连接错误,或数据库文件变动,只需更改conn.asp即可,不必要修改每一页的代码。要善于用这个方法啊,会使你的程序简单化,清晰化,这是常用的编程方法。
然后再输入以上第二行到第六行的划红线的代码块,此代码块的意义让我一一讲
来:
第三行代码:既然网页和数据库用connection建立连接打开关系了,之后最重要的工作就是读取数据了。建立rs对象变量为recordset对象,这样以后可以用rs对象
变量来存取数据库操作。
第四行代码:把从数据表book里查询的结果放到sql变量上。它的意思是把book里所有的数据都取出来,并按id从大到小排序。desc表示从大到小排序,如果不加的话,最新的留言可是在最后面哦,不方便了。
第五行代码:表示用rs对象变量open方法来打开数据表book,取出结果按sql的查询方法。
以上是通用的读取记录的方法,到其它地方都可以举一反三,要熟悉使用!
接着我们要做无留言记录的判断显示代码出来,我们要定位到“暂无留言”这个表格标签代码的开头,加上第29行如下划红线的代码即可,此代码表示判断语句:如果RS记录指针的EOF结尾和BOF开头都为空,就返回真,执行以下标签,即输入暂无留言这个表格,而不输出下面的其它标签了。再定位到“暂无留言”表格标签的结尾,输入以下37、38行划红线的代码完成判断条件,Response.end表示输出结束,不再输出以
下的代码。
其次再做如果记录不为空的情况下输入留言的表格出来,分别定位在输出留言表格标签的前面和后面,插入ASP代码块如下图输入:
此代码块的意思为:将RS记录指针指向第一个记录,然后开始判断移动记录时,记录结尾是否为空,如果不为空接着移动指针,把所有数据都读取出来。直到结尾为空
时,退出循环。
然后我们做最重要的也是最频繁使用的工作了,就是把数据表里各字段的记录分别读取出来放在表格的不两路位置上,例姓名,QQ,邮箱及留言等。先转换到设计视图和
代码视图的环境下,如下图:
我们发现上图多了很多
标记,这就是刚才在代码视图中输入的ASP代码,方便我们在设计视图中进行修改,输出预览是不影响排版的。我们把光标定位在姓名旁边的表格里,点击插入栏ASP里的,自动插入代码区里指定位置,比较方便,不容易搞错,如下图:
然后选中姓名旁边的标记,点属性栏里的Edit编辑按钮,输入rs(“name”)即可。<%= %>表示输出变量值,相当于response.write的简化版。rs是上次已建过的recordset对象,可以直接读取字段里的内容,name是数据表里book里的姓名字段。
同理按以上方法再插入ASP代码留言内容、发表者、发表时间及回复内容在不同位
置,分别是:
留言内容:<%=server.htmlencode(rs(“content”))%>
发表者:<%= rs(“name”)%>
发表时间:<%= rs(“time”)%>
站长回复:<%= rs(“repcontent”)%>
大家可能发现了,留言内容插入的代码和别的稍微不一样,多了server.htmlencode这个对象,这是为了安全问题设置的,是HTML编码对象,可以使带有HTML标签的文本不被解释为HTML标记,这样可以防止被恶意者来写入特殊执行代码,造成不
必要的损失。
这样就写好了,如下图所示:
接着再做OICQ,EMAIL,HOMEPAGE的链接设置,这个和上述不太一样,它不是直接显示出记录即可,而是将鼠标移到QICQ上浮现留言者的QQ号码,点击EMAIL自动给留言者发信,点击HOMEPAGE直接到达留言者的网站。
选中OICQ,加上“#”空链接,同样的也给EMAIL和HOMEPAGE加上“#”空链接。
如下图所示:
大家都知道给图片加提示比较简单,直接在ALT里设置文字说明就可以了,但文字却没有ALT,没关系,我们的Dreamweaver早就想到了,很强大哦!在代码区里OICQ的空链接#后,按空格(注意是英文输入法才有效)会出现智能提示参数出来,我们选择“title”,然后接着打上“<%= rs(”oicq“)%>”即可!如下图所示:
同样的方法给EMAIL和HOMEPAGE加上啊,方法如下图划红线所示:
一切OK了!!^_^发现设计视图里的OICQ,EMAIL和HOMEPAGE的背景变成了浅蓝色,这说明我们在链接上给它们加了ASP代码,这样不同的提示是否很体贴啊:)
你肯定等不及了,看看效果吧!但还没有记录啊,没有做留言提交页和回复页,删除页,只好暂时在数据库里手动添加记录吧。
经过一些时间,千呼万唤始出来,不好意思,让大家久等了。
上次做的留言板只能显示数据,让我们赋于它生命吧,让这个留言板把网友们互动起来,大家可以积极发言,讨论侃山。首先要做一个写留言的网页,为了简单化,我们把写入留言的网页和提交保存留言的网页分成两个,这样容易看懂,方便学员分析。
我们先做写入留言的网页,静态或动态网页均可,不需要任何ASP代码,最好建个静态文件,这样浏览速度快,不增加服务器负担,也不是说全是ASP网页就好哦,有必要的时候该出手就出手!:)只需提供写留言的界面让网友填均可,新建write.htm,排版如下图:
注意给各个文本域命名,最好和数据表里的各个字段相同,这样赋值的时候容易对应,不会出错。然后选中红色虚线的表单,在属性栏里action栏里填入save.asp,这是将来接收网友的留言并保存到数据库里,我们后面会接着做这个网页。如下图:
写留言的表单页很简单,就这样制作完了,大家不要以为有多麻烦啊:)
下一步我们开始制作接收网友留言并处理的网页,新建save.asp网页,将上次做的表单提交的网页名称要一致啊,不能随便命名了。在网页HTML标签的最上面加入以
下红线框起来的代码,如下图:
以上代码分几个段落,并说明了每一块代码的意思,都是通用的基本操作,比较简单,如果有点困难的话,先放一放,先学好ASP基础再说哦.注意在划红线的地方我们增加了两个函数使用.一个是Trim函数,是用来帮助我们除去不必要的空格符,有很多人习惯多打几个空格出来,我们用这个函数来去掉空格就行了。
还有一个是Replace函数,我们在留言内容写了很多字,它到了边上会自动换行,或生成段落会生成回车符,这在提交前表单文本区域是正常的,但提交后数据库不能正常识别这两个特殊符号,在显示留言页只会生成一行,这可不得了啊,把表格撑得宽宽的,很不舒服。而Replace帮助我们来解决这个问题,它可以把文字段落里所有的自动换行符和回车符找出来(vbCrLf是自动换行符和回车符的代码),并自动转换为
字符串,这样HTML就可以正常解释了。
提交保存留言页基本上就完成了,为了更加友好一点,表示提交成功,我们再多做一点工作,一切为了网友方便嘛!我们回到设计视图环境中,插入大表格在正中央,写入“留言成功!2秒后自动返回首页”,在返回首页加入链接到 index.asp网页里。如
下图:
提交成功后2秒钟后自动返回首页,是不是很难啊??其实一点都不难!用Dreamweaver自带的功能就轻松解决这个问题,我们操作如下图:
插入栏中切换到head栏里,点击Refresh按钮,会弹出对话框,如下图:
按以上内容填好,就万岁了,是不是太简单了,别太得意了啊^_^
我们的发表提交留言页就到此结束了,大家是不是很激动,可以留言了,赶紧拉人来试试吧,猛灌水过把自己的瘾吧:),这关我们顺利过了,就要一鼓作气做完其它的工作,就是回复页和删除页,有了以上的基础,就更加轻松了,相信我,是真的!
人总是不满足现状的,我们要永无止步,拿下最后的任务吧。
上次做的留言板有了生命力,可以互动提交留言了,但不能这么泛滥下去,我们还要做个删除页,删除无用的垃圾,网上也需要环保哦^_^.废话少说吧,我们开始建删除页,命名为del.asp。切换到代码视图中,把所有的HTML标签全部删掉,加入如下代码,见下图:
写完这些代码即完成了删除页的制作。让我们分析一下上面代码块的意思:
代码第三行:是删除语句,WHERE后面跟的是条件语句,只删除接受传递过来ID值的数据,这个很关键,一定要设好,否则会把数据表里的全部字段全部清空了,这也
太恐怖了吧。
代码第四行:CONN对象执行DELESQL删除语句结果。
代码第五行和第六行:关闭CONN对象并设为空释放资源。
代码第七行:response.redirect是输出转向对象,表示删除后自动转向到首页去。
接着我们还要再做回复页,总得有来有回嘛,否则别人再大的热情你不回复,也会冷却下来的。所以很有必要哦:),新建reply.asp网页,在设计视图里先排好版,如
下图:
注意红线的地方要加隐藏域,这样的目的是为了防止表单未提交但页面刷新却执行
代码的错误,设置如上图.排好后再切换到代码视图里,定位到HTML标签的最上面,加入如下红线框起来的代码,见下图:
以上代码块的意思有部分我已经在上面反复讲过了,不在重复了,如有不懂请在论谈提出来,我会补充的。这里我再说明一下回复的模块代码:
代码第四行:定位回复的位置,WHERE后面跟的是回复条件,只接受我们传递过来的留言ID值,并赋值到当前的ID变量上,这样我们只会对当前回复的留言页来回复,这个很关键,不然都乱套了。
代码第六行:用来判断是表单提交还是刷新页面,如果是提交表单,那么隐藏域的值肯定被提交,这样Request.Form(“active”)不为空,就执行以下回复语句.如果没提交表单,而是刷新页面,那么那么隐藏域的值没有提交,Request.Form(“active”)
肯定为空,就跳过不执行.
代码第八行:注意此代码前没有加rsedit.addnew,因为这是更新原有的记录,在原有的留言中在追加回复内容,而不是再添加一条新记录。
回复的代码设置好,我们再回到设计视图环境中,先定位到要回复的留言旁边的单元格里,点击后再点属性栏里的edit编辑按钮,弹出编辑框后填写代码“rsedit(“content”)”确定即可。如下图:
选中红色虚线表单,在action栏里填写如下:“reply.asp?id=<%=request(“id”)%>”,如下图:
回复页我们也做好了,是不是完事了?先别激动,还有一件事呢,忘了给首页index.asp的删除和回复还有发表新主题这三个加链接了,那不是空谈嘛,赶紧补上吧!
链接设置见下图:
< P>
超简留言板的教程就到此结束了,是不是非常超简啊:),不知道大家收获怎么样?希望能反馈给我哦。在这里我把本教程的源代码提供出来,给大家一个方便,可以直接
对照一下,祝你成功了!
编辑后话:幻想曲 还可以更人性化一点!比如如果用户没有填写OICQ或是EMAIL地址就不显示出来!当然,回复和删除是要经过登录验证的!这些东东我相信是作者留下来让朋友们自行完成的吧!鼓励一下这篇不错的教程!
作者虽然是在用DW,但没有依赖于DW自动生成的代码.这对于那些想学ASP而又一直借助于DW的朋友们来说确是一个不小的帮助!另外:提交留言时是不是要把单引号屏蔽掉呢?不然SQL语句是很容易出错的!作者后话:我已经有了完善版的大飞猪留言板,但考虑到是让学生更能入门,所以没有加上去,免得起不到效果,完善版的主要是加了权限功能,登录系统,主要是版主才能回复和删除才行的.这个会更多的,怕吓跑了初学者,有经验的学习者可以向我索要源代码!
改日我再发布完善版的教材出来!
第二篇:Dreamweaver 8.0制作简易留言板图文教程
用ASP和Dreamweaver 8.0制作简易留言板
目录
一、ASP原理..................................................................................................................................2
二、网页制作步骤...........................................................................................................................3
1、建立数据库.........................................................................................................................3
(1)、利用ACCESS新建空数据库db_message.mdb.....................................................3(2)、建立数据表t_message.............................................................................................3(3)、建立所需字段..........................................................................................................3
2、建立留言页面.....................................................................................................................4
(1)、打开Dreamweaver 8.0 新建 ASP VBScript,建立留言页面message.Asp。....4(2)、建立数据库连接conn.............................................................................................4(3)、利用插入记录表单向导创建页面..........................................................................4
3、建立留言板首页.................................................................................................................6
(1)、用Dreamweaver新建ASP VBScript,创建留言板首页index.asp。...............6(2)、建立一个记录集message........................................................................................6(3)、插入一个4行4列的表格......................................................................................7(4)、绑定记录集到表格中..............................................................................................8(5)、添加重复区域........................................................................................................10
三、网页制作结果.........................................................................................................................11
四、总结.........................................................................................................................................12
五、致谢.........................................................................................................................................12
六、参考文献.................................................................................................................................13
摘要:随着因特网的迅猛发展,网络已深入到世界的各个角落,作为因特网的主要组成部分的网站,其数量和质量都在快速发展。网站与用户的交互主要使用动态网页来实现,为了简化和方便动态网页的开发,Web领域的主要开发商相继推出了多种Web开发技术,ASP(Active Server Pages)就是其中的典型代表。利用ASP和Dreamweaver 8.0快速创建充满动感的交互网页,而无需或只需要少量的手写代码,同时还能非常方便地编辑和管理站点,这是动态网页初学者进行网站开发的最好方式。用ASP、Dreamweaver 8.0以及Access作为后台数据库可以简单快捷的设计一个留言板,达到留言板的基本功能。
关键字:ASP、Dreamweaver、留言板、交互网页、Access
一、ASP原理
ASP是一个编程环境,在其中,可以混合使用HTML、脚本语言以及组件来创建服务器端功能强大的Internet应用程序。如果你以前创建过一个站点,其中混合了HTML、脚本语言以及组件,你就可以在其中加入ASP程序代码。组件可以被脚本程序调用,也可以由其他的组件调用。ASP网页需要相应的Web服务器的支持,才能正常运行,其WEB服务器主要是PWS和IIS。安装IIS后,设置相应配置,便可使用ASP。
网页文件均是存放在Web服务器中的,当在客户端浏览器的地址栏键入某个网址并按回车时,便向服务器触发了一个HTTP请求,服务器将根据所请求网页的扩展名,来决定响应的方式。ASP网页是运行于服务器端的,在客户端所查看到的网页源代码,是ASP动态生成的页面源代码,并非ASP网页本身的代码,因此,ASP网页具有较高的保密性,另外,由于ASP输出的是标准格式的HTML页面,故不存在浏览器不支持的问题。HTML运行于客户端浏览器,由浏览器解释执行,从而显示出最终的页面内容。ASP能根据代码执行的结果,动态形成页面内容,故ASP页面又称为动态网页。
当在Web站点中融入ASP功能后,通常将发生以下结果:
1、用户调出站点内容,默认页面的扩展名是.asp。
2、浏览器从服务器上请求ASP文件。
3、服务器端脚本开始运行ASP。
4、ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。
5、页面信息发送到浏览器。
二、网页制作步骤
1、建立数据库
(1)、利用ACCESS新建空数据库db_message.mdb(2)、建立数据表t_message(3)、建立所需字段
留言人:t_name 留言内容:t_message 留言时间:t_time
2、建立留言页面
(1)、打开Dreamweaver 8.0 新建 ASP VBScript,建立留言页面message.Asp。(2)、建立数据库连接conn,用以下程序:
“Provider=Microsoft.Jet.oLEDB.4.0;Data Source=E:webdb_message.mdb”
(3)、利用插入记录表单向导创建页面,各配置如图
列t_time的标签改为留言时间,显示为隐藏域,提交为日期,默认值写 <%= Now()%> 设置完记录表单向导后,会自动生成表单
打开浏览器,输入http://localhost/message.asp 出现留言页面,输入留言内容
由于留言板主页并未制作,所以不会出现连接,但是Access数据库中有留言内容
3、建立留言板首页
(1)、用Dreamweaver新建ASP VBScript,创建留言板首页index.asp。(2)、建立一个记录集message
(3)、插入一个4行4列的表格
(4)、绑定记录集到表格中
在浏览器地址输入http://localhost/index.asp就会出现留言板主页,并且显示以前留言
重新在浏览器地址输入http://localhost/message.asp
提交新留言
留言板主页只显示当前最新留言,以前留言并不显示,要改进就要添加重复区域
9(5)、添加重复区域
需要修改代码
在浏览器输入地址http://localhost/index.asp显示结果有全部留言
三、网页制作结果
四、总结
这次实训是做一个简易的留言板,对然简单,但能实现基本功能。利用ASP、Dreamweaver 8.0、Access制作留言板,减少了写繁多代码的麻烦,便可制作出最基本、简便的留言板。在制作过程中,首先了解了ASP的运行与原理,其次,再利用Dreamweaver 8.0制作网页的过程中,对该软件有了初步的认识与了解,并会运用其中一些功能,利用Access制作简单的数据库,简便快捷。
在使用软件的过程中,由陌生到逐步了解、熟悉,在配置各种设置的过程中了解使用原理,一步一步做出所需要的留言板,在过程中学会知识,在结果中收获喜悦。通过本次实训,让我对学了的知识进行了巩固并且学到了许多新的知识,知道如何将书本上的知识转化为实际操作并且得到所要的结果,五、致谢
感谢老师的指导,为我们解决了许多疑难困惑。
六、参考文献
[1] 吴鹏,李国娟,贾艳萍.Dreamweaver网页设计与制作案例教程.北京大学出版社,2010.[2] 张玉孔.ASP动态网页开发案例教程.北京航空航天大学出版社,2009.[3] 石志国,李颖.ASP程序设计.清华大学出版社,2005.[4] 邹婷.Dreamweaver 8 标准教程.中国青年出版社,2006.
第三篇:简易留言板课程设计报告
武汉软件工程职业学院
课程设计报告
2016-2017学第 二 学期
题目:
简易留言板设计
姓名:
肖志超
班级:
网络1502
系部:
计算机学院
指导教师:
梁晓雅
日期:2017年6月13日
[摘要]
在网络网络技术迅速发展以信息交流频繁的今天,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车;企业利用网站宣传自己的形象,进而挖掘无限商机;个人利用网站展示个性风采,创建彼此沟通的桥梁。越来越多的网站建立了自己的www.xiexiebang.command cmd = new SqlCommand(yh, conn);
if((int)cmd.ExecuteScalar()> 0){ string yhx = “admin”;string yhxx = “select count(*)from userinfo where uname='” + TextBox1.Text.Trim()+ “'and upwd='” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(), “MD5”)+ “'and ulevel='” + yhx + “'”;SqlCommand cmd1 = new SqlCommand(yhxx, conn);if((int)cmd1.ExecuteScalar()> 0){ Session[“sf”] = “admin”;Session[“s”] = TextBox1.Text.Trim();} else { Session[“sf”] = TextBox1.Text.Trim();;} Response.Redirect(“xgxx.aspx”);} else { Response.Write(“”);}
}
protected void LinkButton1_Click(object sender, EventArgs e){
string yh = “select count(*)from userinfo where uname='” + TextBox1.Text.Trim()+ “'and upwd='”
+FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(),“MD5”)+ “' ”;conn.Open();SqlCommand cmd = new SqlCommand(yh, conn);
if((int)cmd.ExecuteScalar()> 0){ Session[“uname”] = TextBox1.Text;
Response.Redirect(“ly.aspx”);} else { Response.Write(“”);}
}
4.2.新用户注册
在登录页面点击注册即可进入新用户注册页面
核心代码如下
static string Coonstr = System.Configuration.ConfigurationManager.ConnectionStrings[“coonstring”].ToString();SqlConnection conn = new SqlConnection(Coonstr);static int i = 1;protected void Page_Load(object sender, EventArgs e){ }
protected void LinkButton2_Click(object sender, EventArgs e){ Response.Redirect(“Default.aspx”);}
protected void LinkButton3_Click(object sender, EventArgs e){ string xyh = “select count(*)from userinfo where uname='” + TextBox1.Text.Trim()+ “'”;conn.Open();SqlCommand cmd = new SqlCommand(xyh, conn);
if((int)cmd.ExecuteScalar()> 0){ Label1.Text = “用户名重复”;} else { Label1.Text = “可以使用的用户名”;int i = 0;} }
protected void LinkButton1_Click(object sender, EventArgs e){
conn.Open();if(i!= 0){ string ss = “user”;//string cyh = “insert into userinfo values('” + TextBox1.Text + “','” + TextBox2.Text + “','” + TextBox4.Text + “','” + ss + “''” + DropDownList1.SelectedValue.ToString()+ “','” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox5.Text, “MD5”)+ “')”;string cyh = “insert into userinfo(uname,upwd,uemail,ulevel,uquestion,uanswer)values('” + TextBox1.Text + “','” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text, “MD5”)+ “','” + TextBox4.Text + “','” + ss + “','” + DropDownList1.SelectedValue.ToString()+ “','” + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox5.Text, “MD5”)+ “')”;SqlCommand cmd = new SqlCommand(cyh, conn);int num = cmd.ExecuteNonQuery();if(num > 0){ Response.Write(“”);} else { Response.Write(“”);} } else { Response.Write(“”);}
}
4.3找回遗忘的密码
在用户登录界面中输入用户名,单击“忘记密码”链接按钮打开如图所示的界面,程序根据用户输入的用户名,在页面中显示注册时填写的安全问题,若用户能正确回答安全问题答案,即可重置密码
核心代码如下
public partial class zhmm : System.Web.UI.Page { static string Coonstr = System.Configuration.ConfigurationManager.ConnectionStrings[“coonstring”].ToString();SqlConnection conn = new SqlConnection(Coonstr);protected void Page_Load(object sender, EventArgs e){ if(!IsPostBack){ Label1.Text = Convert.ToString(Session[“zhmm”]);if(Label1.Text==“"){ Response.Redirect(”Default.aspx“);}
DropDownList1.Items.Clear();conn.Open();this.DropDownList1.Items.Add(”“);string mm = ”select uquestion from userinfo where uname='“+Session[”zhmm“]+”'“;SqlCommand sql = new SqlCommand(mm, conn);SqlDataReader dr = sql.ExecuteReader();while(dr.Read()){ this.DropDownList1.Items.Add(dr[”uquestion“].ToString());}
}
}
protected void LinkButton1_Click(object sender, EventArgs e){ string m = ”select count(*)from userinfo where uname='“ + Session[”zhmm“] + ”'and uanswer='“ + FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text.Trim(), ”MD5“)+ ”'and uquestion='“ +DropDownList1.SelectedValue.ToString()+ ”'“;conn.Open();SqlCommand cmd = new SqlCommand(m, conn);
if((int)cmd.ExecuteScalar()> 0){ Response.Write(”“);} else { Response.Write(”“);} }
protected void LinkButton2_Click(object sender, EventArgs e){ Response.Redirect(”Default.aspx“);}
4.4.修改用户信息
在用户登录页面中输入用户名和密码,单击“修改用户信息”链接按钮讲打开用户管理页面。管理员用户可以使用页面中的所有功能,而普通用户只能修改自己的密码,电子邮箱等信息。
核心代码如下
public partial class xgxx : System.Web.UI.Page { static string Coonstr = System.Configuration.ConfigurationManager.ConnectionStrings[”coonstring“].ToString();SqlConnection conn = new SqlConnection(Coonstr);protected void Page_Load(object sender, EventArgs e){ if(!IsPostBack){ if((string)Session[”sf“] == ”admin“){ string dr = ”select uname ,uemail,ulevel from userinfo where ulevel='user'“;DropDownList1.Items.Clear();conn.Open();DropDownList1.Items.Add(Session[”sf“].ToString());DropDownList2.Items.Add(”admin“);SqlCommand sql = new SqlCommand(dr, conn);SqlDataReader dr1 = sql.ExecuteReader();while(dr1.Read()){ this.DropDownList1.Items.Add(dr1[”uname“].ToString());} conn.Close();
string drq = ”select uname ,uemail,ulevel from userinfo where ulevel='“ + Session[”s“] + ”'“;conn.Open();SqlCommand sq1l = new SqlCommand(drq, conn);SqlDataReader dr11 = sq1l.ExecuteReader();
while(dr11.Read()){ TextBox3.Text = dr11[”uemail“].ToString();
} } else { DropDownList1.Items.Add(Session[”sf“].ToString());DropDownList1.Enabled = false;DropDownList2.Items.Add(”user“);LinkButton2.Enabled = false;} } }
protected void LinkButton1_Click(object sender, EventArgs e){conn.Open();string cz = ”update userinfo set upwd='“
+FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(),”MD5“)+ ”',uemail='“+TextBox3.Text.Trim()+”' where uname='“ + Session[”sf“] + ”'“;SqlCommand cmd = new SqlCommand(cz, conn);if((int)cmd.ExecuteNonQuery()> 0){ Response.Write(”“);} }
protected void LinkButton3_Click(object sender, EventArgs e){ Response.Redirect(”Default.aspx“);}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){ TextBox3.Text = ”“;string yx = ”select uemail,ulevel from userinfo where uname='“+DropDownList1.SelectedValue.ToString()+”'“;conn.Open();DropDownList2.Items.Clear();SqlCommand sql = new SqlCommand(yx, conn);SqlDataReader dr1 = sql.ExecuteReader();while(dr1.Read()){ TextBox3.Text = dr1[”uemail“].ToString();DropDownList2.Items.Add(dr1[”ulevel"].ToString());}
}
五、总结
做课设让我对ASP.NET有了新的认识,首先我接触了很多上课见过见过但没有实际用过的类和方法,让我对编程有了许多新的思想。虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具有先现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。这次课程设计本人主要参与了系统实现以及系统测试,还有参与小组共同完成的编写代码、实现功能模块。历时两个星期终于在大家的一起努力下顺利完成了。虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的课程设计中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。实验过程中,也十分感谢实验指导老师马骏老师的指点与教导。这次课程设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力.参考文献
常永英,ASP.NET程序设计教程(C#3)[M].北京:机械工业出版社,2007.常永英,ASP.NET程序设计教程(C#3)[M].上机指导与习题解答。北京:机械工业出版社,2007.崔淼.VisualC#2005程序设计教程[M]。北京:机械工业出版社,2007.张亚习.精通ASP.NET3.5网络开发技术[M].北京:电子工业出版社,2009.Stephen Walther.ASP.NET3.5揭秘(卷1)[M].北京:人民邮电出版社,2009.Stephen Walther.ASP.NET3.5揭秘(卷2)[M].北京:人民邮电出版社,2009.刘瑞新.Visual Basic。NET程序设计教程[M].北京:机械工业出版社,2005.
第四篇:留言板
日照职业技术学院毕业设计(论文)
php留言板系统
学生姓名 院 部
电子信息科学与工程学院 专 业 计算机应用技术 指导老师 鲁 红 日 期 2015-05-19
目录
一 留言板简介..........................................................................................................................................4 二 留言板设计原理..................................................................................................................................4 三 四 五 PHP技术介绍...................................................................................................................................4 PHP技术优点...................................................................................................................................4 MYSQL介绍......................................................................................................................................6
六 留言板系统的概要设计......................................................................................................................6(一)系统开发环境...............................................................................................................................6(二)php语言选择...............................................................................................................................6(三)系统功能.......................................................................................................................................7 七 留言板详细设计..................................................................................................................................7(一)数据库设计...................................................................................................................................8(二)留言板数据库连接 写入和保存..................................................................................................9(三)留言板文件夹中文件的介绍.....................................................................................................15(四)留言板首页设计.........................................................................................................................15 八 总结....................................................................................................................................................15 九 留言板特色和不足............................................................................................................................15 参考文献:................................................................................................................................................16
第1页
留言板系统
摘要:随着Internet的发展,网站的作用越来越重要,被称之为继广播、报纸、杂志、电视后的
第五种媒体——数字媒体,拥有众多优势,所以现在不少企业都有或正在建设自己的网站。而留言板作为网站重要的一个部分,从来就是一个大家交流的平台!留言板是一种最为简单的BBS应用,借助留言板,浏览者可以张贴留言的方式给站长、版主或其他浏览者进行留言和提问。
本文主要介绍留言板系统的设计思路和制作过程,从留言板的重要性开始,介绍我的留言版采用的PHP技术和MYSQL数据库,进而阐述整个留言板系统的制作过程和具体的设计思路。该留言板较全面地利用PHP技术实现留言板的基本功能:留言、查看、删除,并增加了一些特色功能。最后介绍自己在设计过程的心得体会。关键词:留言板,PHP,MYSOL数据库
第2页
引言
Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设1个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这10年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。
最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的1个研究小组着手开发1种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了1种主从、分布式的网络服务系统,这就是www.xiexiebang.compile编译或链接程序,可在服务器端直接执行,这无疑是更加方便了我们的编写过程。
2、使用编程环境方便简单。可以使用普通的记事本之类的文本编辑器,即可进行编辑设计,如:Windows的记事本、FrontPage等文本编辑器。也可以用dreamweaver和专业的Microsoft Visual InterDev开发工具。
3、浏览网页方便,交互速度也快。PHP是运行在服务器端,所以我们无须担心浏览器是否支持PHP所使用的编程语言,用户端只要使用可执行HTML码的浏览器,即可浏览Personal home pages所设计的网页内容。PHP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
4、提供多种编程语言。PHP能与任何ActiveX scripting语言相容。除了可用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如Perl等。
5、提高代码的安全性。Personal home pages的程序代码隐藏,已编码的脚本在运行时由脚本引擎解码,因此不需要单独的应用程序。客户端上仅可以看到由PHP输出的动态HTML文件。因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
6、功能强大。编程是面向对象的(Object oriented),并可扩展ActiveX Server组件功能。Personal home page Components(ActiveX服务器组件)具有无限可扩充性。你可以使用任何编程语言来编写你所需要的Personal Server 组件。可以使用Visual Basic、Java、Visual C++、COBOL等编程语言来编写你所需要的Personal Server Component。也可以使用第三方组件或自己开发的Personal Server组件。理论上说,可以实现任何功能。
7、访问数据库十分方便。可以通过PDO(Personal Data Objects,微软的一种新的数据访问模型,是一种可以提供WEB页面开发者轻松存取Internet的数据库,并可以在用户端实现网上立即、即时更新显示的最新WEB页面数据库技术。)非常方便地访问数据库。
总之,PHP从字面上说,包含三方面含义: 1.Personal:PHP使用了微软的Personal技术。Personal(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。PHP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。
2.home:PHP运行在服务器端。这样就不必担心浏览器是否支持PHP所使用的编程语言。PHP的编程语言可以是VBSCRIPT和JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而NETscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。NETscape浏览器也可以正常显示PHP页面。
3.page:PHP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是PHP生成的HTML代码,而不是PHP程序代码。这样就可以防止别人抄袭程序。由此可以看出,PHP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的PHP系统。
第5页
而我这次所开发的留言本系统,主要是利用PHP技术的简单和实用的特点,以及PHP使用的广泛性,而且非常适合于网络中小型系统开发。
五 MYSQL介绍
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008 年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径 8.提供用于管理、检查、优化数据库操作的管理工具 9.可以处理拥有上千万条记录的大型数据库
六 留言板系统的概要设计
(一)系统开发环境
基于微软平台PHP环境,使用MYSQL数据库。适用于IE8.0以上版本浏览器,Win2000+APACHE 或win7+APACHE以上运行环境。(本人用的win7+APACHE测试)。
(二)php语言选择
选择一个好的编程语言十分的重要,当前,面对众多的编程语言,很多人无从选择,而本人看到PHP的以上众多特点,个人认为:
MYSQL后台数据库+PHP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式。在这种使用模式中,PHP程序无疑是最重要的,是沟通客户端和后台数据库之间的桥梁。在PHP程序中,通过数据库语言,建立对MYSQL数据库的连接,是客户能够访问后
第6页
台数据库的前提。
鉴于前面介绍PHP优点的原因,又有上面组合的优势,本人的留言板使用PHP语言也是十分正确而实用的。
(三)系统功能
该留言板具有的主要功能如下:
1.可以按照发言时间的先后顺序,留言板自动排序; 2.留言板的主要栏目组成图
3.本留言板不需注册,陌生人即可留言。
4.因为是个人留言板所以具有留言、查看、删除的功能。
七 留言板详细设计
有了技术和流程图以及留言板要实现的功能,接下来就应该进行详细设计了。数据库是首当其冲的,接下来就是用户常接触的首页的设计,然后就是该留言板特色功能的设计和实现。
第7页
(一)数据库设计
我的数据库采用的是MY SQL数据库,采用的原因也已经介绍了。以下就介绍留言板数据库的组成。
第8页
(二)留言板数据库连接 写入和保存
数据库链接失败!
”;
exit();} mysql_select_db(“gbook”, $con);mysql_query(“set names 'gb2312'”);date_default_timezone_set(PRC);?>
第9页
if(isset($_REQUEST['GLOBALS'])OR isset($_FILES['GLOBALS'])){ exit('Request tainting attempted.');} //Session保存路径
$sessSavePath = LOVE_ROOT.“data/sessions/”;if(is_writeable($sessSavePath)&& is_readable($sessSavePath)){ session_save_path($sessSavePath);} date_default_timezone_set(Singapore);$timestamp = time();require_once LOVE_ROOT.'./data/config.inc.php';require_once LOVE_ROOT.'./data/db.inc.php';require_once LOVE_ROOT.'./include/db_mysql.class.php';require_once LOVE_ROOT.'./include/template.class.php';if(defined('UC_KG')){include_once TM_ROOT.'/uc_client/client.php';} $PHP_SELF = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];$SCRIPT_FILENAME = str_replace('', '/',($_SERVER['PATH_TRANSLATED'] ? $_SERVER['PATH_TRANSLATED'] : $_SERVER['SCRIPT_FILENAME']));//$homeurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace(“//+(api|archiver|wap)?/*$/i”, '', substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/';
//实例化数据库操作 $db = new dbstuff;$db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);unset($dbhost, $dbuser, $dbpw, $dbname, $pconnect);$db->query(“set names gbk”);if(getenv('HTTP_CLIENT_IP')&& strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){ $onlineip = getenv('HTTP_CLIENT_IP');} elseif(getenv('HTTP_X_FORWARDED_FOR')&& strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){ $onlineip = getenv('HTTP_X_FORWARDED_FOR');} elseif(getenv('REMOTE_ADDR')&& strcasecmp(getenv('REMOTE_ADDR'), 'unknown')){ $onlineip = getenv('REMOTE_ADDR');} elseif(isset($_SERVER['REMOTE_ADDR'])&& $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')){ $onlineip = $_SERVER['REMOTE_ADDR'];}
preg_match(“/[d.]{7,15}/”, $onlineip, $onlineipmatches);$onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';unset($onlineipmatches);?>
第10页
var $querynum = 0;var $link;var $histories;
var $dbhost;var $dbuser;var $dbpw;var $dbcharset;var $pconnect;var $tablepre;var $time;
var $goneaway = 5;
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset = '', $pconnect = 0, $tablepre='', $time = 0){
$this->dbhost = $dbhost;
$this->dbuser = $dbuser;
$this->dbpw = $dbpw;
$this->dbname = $dbname;
$this->dbcharset = $dbcharset;
$this->pconnect = $pconnect;
$this->tablepre = $tablepre;
$this->time = $time;
if($pconnect){
if(!$this->link = mysql_pconnect($dbhost, $dbuser, $dbpw)){
$this->halt('Can not connect to MySQL server');
}
} else {
if(!$this->link = mysql_connect($dbhost, $dbuser, $dbpw)){
$this->halt('Can not connect to MySQL server');
}
}
if($this->version()> '4.1'){
if($dbcharset){
mysql_query(“SET character_set_connection=”.$dbcharset.“, character_set_results=”.$dbcharset.“, character_set_client=binary”, $this->link);
}
if($this->version()> '5.0.1'){
mysql_query(“SET sql_mode=''”, $this->link);
}
第11页
} } if($dbname){ mysql_select_db($dbname, $this->link);} function fetch_array($query, $result_type = MYSQL_ASSOC){
return mysql_fetch_array($query, $result_type);}
function result_first($sql){
$query = $this->query($sql);
return $this->result($query, 0);}
function fetch_first($sql){
$query = $this->query($sql);
return $this->fetch_array($query);} function fetch_row($query){
$query = mysql_fetch_row($query);
return $query;} function fetch_fields($query){
return mysql_fetch_field($query);} function fetch_rows($sql){
$result = $this->query($sql);
$arr = array();
while($row = $this->fetch_array($result))
{
$arr[] = $row;
}
$this->free_result($result);
return $arr;} function fetch_one($sql){
$rs = $this->query($sql);
$arr = $this->fetch_array($rs,MYSQL_NUM);$this->free_result($rs);
第12页
return $arr[0];} function fetch_all($sql, $id = ''){
$arr = array();
$query = $this->query($sql);
while($data = $this->fetch_array($query)){
$id ? $arr[$data[$id]] = $data : $arr[] = $data;
}
return $arr;}
function cache_gc(){
$this->query(“DELETE FROM {$this->tablepre}sqlcaches WHERE expiry<$this->time”);}
function query($sql, $type = '', $cachetime = FALSE){
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query')'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql, $this->link))&& $type!= 'SILENT'){
$this->halt('MySQL Query Error', $sql);
}
$this->querynum++;
$this->histories[] = $sql;
return $query;}
function affected_rows(){
return mysql_affected_rows($this->link);}
function error(){
return(($this->link)? mysql_error($this->link): mysql_error());}
function errno(){
return intval(($this->link)? mysql_errno($this->link): mysql_errno());}
function result($query, $row){
$query = @mysql_result($query, $row);
return $query;}
function num_rows($query){
第13页
?
$query = mysql_num_rows($query);
return $query;}
function num_fields($query){
return mysql_num_fields($query);}
function free_result($query){
return mysql_free_result($query);}
function insert_id(){
return($id = mysql_insert_id($this->link))>= 0 ? $id : $this->result($this->query(“SELECT last_insert_id()”), 0);}
function version(){
return mysql_get_server_info($this->link);}
function close(){
return mysql_close($this->link);}
function halt($message = '', $sql = ''){
$error = mysql_error();
$errorno = mysql_errno();
if($errorno == 2006 && $this->goneaway--> 0){
$this->connect($this->dbhost, $this->dbuser, $this->dbpw, $this->dbname, $this->dbcharset, $this->pconnect, $this->tablepre, $this->time);
$this->query($sql);
} else {
$s = 'Error:'.$error.'
';
$s.= 'Errno:'.$errorno.'
';
$s.= 'SQL::'.$sql;
exit($s);
} } } ?>
第14页
(三)留言板文件夹中文件的介绍
有了数据库,就应该设计留言板的各个页面。本留言板由2个文件夹,11个文件组成,简单介绍各文件的作用:
index.PHP:留言板主页,主要功能是查看留言,任何人都可以查看留言信息。Fun.php连接数据库并统计留言条数、计算页数 Config.php连接配置数据库。
(四)留言板首页设计
我留言板的首页文件index.PHP,功能主要是为访客留下相关的信息,并进行留言。界面相对简单,但功能很实用!留言板的基本功能实现具体如下:
图7.1留言首页
图7.2愿望
图7.3愿望列表
结束语:通过上面的介绍,相信对该留言板整体的构建和各项功能都有了一定的认识,最重要的是学会了留言板的设计以及类似网络的编程,更对实际操作和具体设计流程有了清晰的认识。该留言板实现了基本功能,并具有自己的特色,例如屏蔽关键字和防灌水功能。由于该留言板功能实用,而且界面友好,特别适合于中小型网站使用。对于刚刚接触网络编程人员的信心和兴趣也会有很大提高。
八 总结
通过本次毕业设计,我学到了很多东西,例如:编程规范,PHP技术等。这次毕业设计是对我大学本科四年所学知识的一次综合应用,让我认识到了自己的不足,并不断的加强改进。在系统不断的完善改进中,我学到了很多新的知识,也懂得了很多。这使我对自己的未来充满了信心。
九 留言板特色和不足
特色:任何人都可以留言,任何人都可以看到。无需注册和登录,完全开放。不足:管理员功能较弱。
第15页
参考文献:
1.《PHP语言,进阶和高级应用》 龙浩等编著 清华大学出版社
2.《PHP & MYSQL Web数据库应用开发指南》 Hugh E.Williams等著 谢君英 欧阳宇译2003年5月
3.《php程序设计》 Programming PHP 中国电力出版社 2003年7月 4.《phpmysql数据库开发指南》焦桐顺著 电子工业出版社 2001年9月 5.《php4交互网页数据库实战手册》清华大学出版社 2004年7月
第16页
第五篇:ASPNET留言板
一、留言板的简介(一)留言板
留言板是一种电子便签管理系统,是用 ASP 或其它脚本语言编写的网络应用程序。在网络用户交流中起很大的作用, 每个人都可以将他的资料和要求等信息保留在页面上,以供他人观看。留言板供其他网友给自己留言,或者临时存放自己的感受。留言操作相对简单, 在您进入网站后, 进入任何一个留言板货社区均可以看到有输入框,输入后提交即可。留言板提供完备的信息发布功能,在网络用户交流中也有很大的作用。而这个留言板仅仅是简单的留言和管理员对留言板进行设置和进行回复、删除管理的工具。该留言板简单但实用, 而且具备了大多数留言板的基本功能。
二、需求分析(一)需求分析
要求系统具有良好的人机界面, 能够满足用户的留言要求, 能够让访客在查看留言内容后,对留言的内容发表自己的意见,管理员能够实现对留言的回复及删除操作, 网站最大限度地实现维护和易操作性,网站运行稳定、安全可靠。(二)设计目标
界面设计美观友好,使用灵活便捷,数据存储安全可靠,提供留言查看、留言发表、留言回复、留言删除功能,系统最大限度地实现易维护和易操作性。(三)功能分析
可以按照发言时间的先后顺序,留言板自动排序,友好简洁的管理界面,便于管理员维护留言板,管理员具有回复和删除留言的权限,具有页数跳转功能系统功能模块图,三、系统功能设计
在编写留言系统前,首先需要确定留言系统所需要的一些功能模块和适用场景,例如留言系统是以何种形式呈现给用户, 如何对这些留言进行管理等等,这些功能都是需要在开发初级进行设计和规划的。后台主页,后台主页面, 后台管理,后台留言信息管理,后台会员。前台主页,留言系统网站登陆界面,主页,留言动态。登陆界面主要有,注册、登陆、看帖、发帖。(一)主要功能 ,、留言网站用户登陆界面功能
当用户访问 W eb 页面时需要进行登录进入留言板网站界面,用户不进行登录就不能够进入系统,也不能够分享相应的信息。管理员可以配置是否需要进行登录才能查看留言板网站的内容, 如果管理员设置需要登录查看,则用户不登陆就不能够查看相应的内容。
2、用户主页功能
用户登录之后就可以看到留言板系统的内容。
3、用户注册功能
访客需要注册账户后才能够看帖,发帖。
4、用户看帖功能
用户登录留言板网站后,就可以查看到网站内的留言贴。
5、用户发帖功能
用户登录留言板网站后,就可以根据其它留言贴而发帖。
6、管理员登录功能
为了方便管理留言板系统,管理员进行对留言板管理。
7、回复功能
用户对留言进行回复(二)数据库设计 ASP.NET 留言板系统在数据库上并不是很困难, 但是也不会简单,其中包含了很多的功能, 这些功能能够让用户在网站上分享自己的见解、意见、聊天等,所以在数据库的设计上, 其表的数量和表与表之间的关系也原有的模块或系统更加复杂。
1、数据表的创建
创建表可以通过 SQL Server 进行创建
2、事务表 Admin Member Info
3、公告数据
公告数据可以不使用数据库进行存储,在这里可以使用 txt 文档进行数据存储, 这样不仅可以减轻数据库服务器的压力, 也能够增加公告中文本的可扩展性。注意,对于公告的数据直接存储在 txt 文档中,当首页需要调用公告时,可以直接从 txt 文档中读取数据进行 HTML 呈现。
(四)设计技术
1、ASP Microsoft Active Server Pages 即我们所称的 ASP,其实是一套微软开发的服务器端脚本环境。Active Server Page 是创建动态网页的一个很好的工具, 它起一种编程语言的作用,可以利用它编写动态产生 HTML 的程序代码。而且 ASP 也是服务器端脚本环境,可以用来创建交互式 WEB 页并建立强大的的 Web 应用程序。因此,只要用户浏览 Web 站点并请求一个 ASP 页,Web 服务器就可以处理相应的 ASP 代码,生成 HTML 代码,然后将它传递到用户浏览器并显示出网页。ASP 内含于 IIS4.0 和 5.0 之中,通过 ASP 我们可以结合 HTML 网页、ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB服务器应用程序。有了 ASP 就不必担心客户的浏览器是否能运行所编写的代码, 因为所有的程序都将在服务器端执行, 包括所有嵌在普通HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器, 这样也就减轻了客户端浏览器的负担, 大大提高了交互的速度。
2、SQL SQL 全称是“结构化查询语言(Structured Query Language)” ,最早的是 IBM 的圣约瑟研究实验室为其关系数据库管理系统 SYSTEM R开发的一种查询语言,它的前身是 SQUARE 语言。SQL 语言结构简洁,功能强大,简单易学,所以自从 IBM 公司 1981 年推出以来,SQL 语言,得到了广泛的应用。如今无论是像 Oracle ,Sybase, SQL Server这些大型的数据库管理系统,还是像 Visual Foxporo, PowerBuilder这些微机上常用的数据库开发系统,都支持 SQL 语言作为查询语言。
3、IIS IIS 是 Internet Information Server 的缩写,它是微软公司主推的服务器,最新的版本是 Windows2003 里面包含的 IIS 6,IIS 与WindowNT Server 完全集成在一起,因而用户能够利用 Windows NTServer 和 NTFS,NT File SystemNT 的文件系统,内置的安全特性,建立强大,灵活而安全的 Internet 和 Intranet 站点。IIS 支持 HTTP,Hypertext Transfer Protocol,超文本传输协议, ,FTP,Fele Transfer Protocol,文件传输协议,以及 SMTP 协议,通过使用 CGI 和 ISAPI,IIS 可以得到高度的扩展。
四、系统界面和代码实现
1、用户登录界面, 代码如下, u s i n g
S y s t e m.D a t a.S q l C l i e n t;p u b l i c
p a r t i a l
c l a s s
L o g i n
:
S y s t e m.W e b.U I.P a g e { p r o t e c t e d
v o i d
P a g e _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e)
{
} p r o t e c t e d
v o i d
B t n L o g i n _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
i f
(T x t N a m e.T e x t
= =
“ ”
|
T x t P a s s.T e x t
= =
“ ”)
{ L a b e l 1.T e x t
=
“ 必须输入帐号和密码,”;r e t u r n;
} e l s e
{ S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l C a t a l o g = B B S;I n t e g r a t e d
S e c u r i t y = t r u e ”);c o n n.O p e n();S q l C o m m a n d
C m d
=
n e w
S q l C o m m a n d();
C m d.C o n n e c t i o n
=
c o n n;C m d.C o m m a n d T e x t
=
“ s e l e c t
[ 用户名]
f r o m
[ m e m b e r ]
w h e r e
[ 用户名] = ' ”
+
T x t N a m e.T e x t +
“ '
a n d
[ 密码] = ' ”
+
T x t P a s s.T e x t
+
“ ' ”;S q l D a t a R e a d e r
d r
=
C m d.E x e c u t e R e a d e r();i f
(d r.R e a d()){ S e s s i o n [ “ m e m ” ]
=
T x t N a m e.T e x t;
/ / 登录成功后记下该用户昵称,以便后续功能使用
L a b e l 1.T e x t
=
“ 登录成功,”;T x t N a m e.T e x t
=
“ ”;T x t N a m e.E n a b l e d
=
f a l s e;T x t P a s s.T e x t
=
“ ”;T x t P a s s.E n a b l e d
=
f a l s e;d r.C l o s e();
} e l s e {
L a b e l 1.T e x t
=
“ 昵称不存在或密码不对,”;
} c o n n.C l o s e();
}
} p r o t e c t e d
v o i d
L i n k B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ g u a n l i.a s p x ”);
} }
2、用户注册界面, 代码如下,u s i n g
S y s t e m.D a t a.S q l C l i e n t;p u b l i c
p a r t i a l
c l a s s
_ D e f a u l t
:
S y s t e m.W e b.U I.P a g e
{
p r o t e c t e d
v o i d
P a g e _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e)
{
} p u b l i c
b o o l
C h e c k I n p u t(){
i f
(T x t N a m e.T e x t
= =
“ ”
|
T x t P a s s.T e x t
= =
“ ”
| T x t P a s s C o n f.T e x t
= =
“ ”
|
T x t E m a i l.T e x t
= =
“ ”){ L a b e l 1.T e x t
=
“ 你输入的信息不正确,请重新输入,”;T x t N a m e.T e x t
=
“ ”;T x t P a s s.T e x t
=
“ ”;T x t P a s s C o n f.T e x t
=
“ ”;T x t E m a i l.T e x t
=
“ ”;r e t u r n
f a l s e;
} e l s e {
i f
(T x t P a s s.T e x t
!=
T x t P a s s C o n f.T e x t){
L a b e l 1.T e x t
=
“ 你两次输入的密码不同,请重新输入,”;T x t N a m e.T e x t
=
“ ”;T x t P a s s.T e x t
=
“ ”;T x t P a s s C o n f.T e x t
=
“ ”;T x t E m a i l.T e x t
=
“ ”;r e t u r n
f a l s e;
}
} r e t u r n
t r u e;
} p r o t e c t e d
v o i d
B t n R e g _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){ i f
(C h e c k I n p u t()){ S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l
C a t a l o g = B B S;I n t e g r a t e d S e c u r i t y = t r u e ”);c o n n.O p e n();/ / 检查用户是否已存在
S q l C o m m a n d
C m d
=
n e w
S q l C o m m a n d();C m d.C o n n e c t i o n
=
c o n n;C m d.C o m m a n d T e x t
=
“ s e l e c t
[ 用户名]
f r o m
m e m b e r ”;S q l D a t a R e a d e r
d r
=
C m d.E x e c u t e R e a d e r();w h i l e
(d r.R e a d()){ i f
(d r.G e t S t r i n g(0)
= =
T x t N a m e.T e x t){
L a b e l 1.T e x t
=
T x t N a m e.T e x t
+
“ 已经存在,请你选择另外的昵称,”;c o n n.C l o s e();r e t u r n;
}
} c o n n.C l o s e();s t r i n g
S q l S t r;S q l S t r
=
“ I n s e r t
i n t o
m e m b e r([ 用户名] , [ 密码] , [ 电子邮件])
v a l u e s(' ”
+
T x t N a m e.T e x t +
“ ' , ' ”
+
T x t P a s s.T e x t
+
“ ' , ' ”
+
T x t E m a i l.T e x t
+
“ ')”;C m d.C o m m a n d T e x t
=
S q l S t r;c o n n.O p e n();C m d.E x e c u t e N o n Q u e r y();c o n n.C l o s e();L a b e l 1.T e x t
=
“ 恭喜你,你已注册成功,”;}
}
p r o t e c t e d
v o i d
B t n C a n c e l _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.W r i t e(“ < s c r i p t
l a n g u a g e = j a v a s c r i p t > a l e r t(' 用户已取消注册,');< / s c r i p t > ”);
} p r o t e c t e d
v o i d
L i n k B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ g u a n l i.a s p x ”);
} } 3、看帖界面, 代码如下, u s i n g
S y s t e m.D a t a.S q l C l i e n t;p u b l i c
p a r t i a l
c l a s s
S h o w
:
S y s t e m.W e b.U I.P a g e {
p r o t e c t e d
v o i d
P a g e _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e){ S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l
C a t a l o g = B B S;I n t e g r a t e d S e c u r i t y = t r u e ”);S q l D a t a A d a p t e r
a d a p t e r
=
n e w
S q l D a t a A d a p t e r(“ s e l e c t
*
f r o m
[ I n f o ] ” ,c o n n);D a t a S e t
d s
=
n e w
D a t a S e t();a d a p t e r.F i l l(d s ,“ I n f o T a b l e ”);G r i d V i e w 1.D a t a S o u r c e
=
d s.T a b l e s [ 0 ].D e f a u l t V i e w;G r i d V i e w 1.D a t a B i n d();} p r o t e c t e d
v o i d
G r i d V i e w 1 _ P a g e I n d e x C h a n g i n g(o b j e c t
s e n d e r ,G r i d V i e w P a g e E v e n t A r g s
e){
G r i d V i e w 1.P a g e I n d e x
=
e.N e w P a g e I n d e x;G r i d V i e w 1.D a t a B i n d();} p r o t e c t e d
v o i d
B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){ R e s p o n s e.R e d i r e c t
(“ L o g i n.a s p x ”);} p r o t e c t e d
v o i d
L i n k B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ g u a n l i.a s p x ”);} }
4、发帖界面, 代码如下, u s i n g
S y s t e m.D a t a.S q l C l i e n t;p u b l i c
p a r t i a l
c l a s s
S e n d
:
S y s t e m.W e b.U I.P a g e {
p r o t e c t e d
v o i d
P a g e _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e){
} p r o t e c t e d
v o i d
B t n S e n d _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
L b l C a u t i o n.T e x t
=
“ 你必须输入主题和内容,”;R e t u r n;
} S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l
C a t a l o g = B B S;I n t e g r a t e d S e c u r i t y = t r u e ”);s t r i n g
S q l S t r;S q l S t r
=
“ I n s e r t
i n t o
i n f o(主题, 张贴者昵称, 内容, 张贴时间, 回复编号)
”;S q l S t r
=
S q l S t r
+
“
v a l u e s(' ”
+
T x t S u b j e c t.T e x t
+
“ ' , ' ”
+
S e s s i o n [ “ m e m ” ]
+
“ ' , ' ”
+ T x t C o n t e n t.T e x t;S q l S t r
=
S q l S t r
+
“ ' , ' ”
+
D a t e T i m e.N o w
+
“ ' , ' 0 ')”;S q l C o m m a n d
C m d
=
n e w
S q l C o m m a n d(S q l S t r ,c o n n);c o n n.O p e n();C m d.E x e c u t e N o n Q u e r y();c o n n.C l o s e();L b l C a u t i o n.T e x t
=
“ 已成功发帖,”;T x t S u b j e c t.T e x t
=
“ ”;T x t C o n t e n t.T e x t
=
“ ”;
} p r o t e c t e d
v o i d
M e n u 1 _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e)
{
} p r o t e c t e d
v o i d
L i n k B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ g u a n l i.a s p x ”);
} } 5、管理员登录界面, 代码如下, u s i n g
S y s t e m.D a t a.S q l C l i e n t;p u b l i c
p a r t i a l
c l a s s
g u a n l i
:
S y s t e m.W e b.U I.P a g e {
p r o t e c t e d
v o i d
P a g e _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e){
} p r o t e c t e d
v o i d
B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
i f
(T e x t B o x 1.T e x t
= =
“ ”
|
T e x t B o x 2.T e x t
= =
“ ”){
L a b e l 1.T e x t
=
“ 必须输入帐号和密码,”;r e t u r n;
} e l s e { S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l C a t a l o g = B B S;I n t e g r a t e d
S e c u r i t y = t r u e ”);c o n n.O p e n();
S q l C o m m a n d
C m d
=
n e w
S q l C o m m a n d();C m d.C o n n e c t i o n
=
c o n n;C m d.C o m m a n d T e x t
=
“ s e l e c t
[ 用户名]
f r o m
[ a d m i n ]
w h e r e
[ 用户名] = ' ”
+
T e x t B o x 1.T e x t +
“ '
a n d
[ 密码] = ' ”
+
T e x t B o x 2.T e x t
+
“ ' ”;S q l D a t a R e a d e r
d r
=
C m d.E x e c u t e R e a d e r();i f
(d r.R e a d()){
S e s s i o n [ “ m e m ” ]
=
T e x t B o x 1.T e x t;
/ / 登录成功后记下该用户昵称,以便后续功能使用
L a b e l 1.T e x t
=
“ 登录成功,”;T e x t B o x 1.T e x t
=
“ ”;T e x t B o x 1.E n a b l e d
=
f a l s e;T e x t B o x 2.T e x t
=
“ ”;T e x t B o x 2.E n a b l e d
=
f a l s e;d r.C l o s e();R e s p o n s e.R e d i r e c t(“ S h o w A r t i c l e.a s p x ”);}
e l s e {
L a b e l 1.T e x t
=
“ 昵称不存在或密码不对,”;
} c o n n.C l o s e();
}
} p r o t e c t e d
v o i d
B u t t o n 2 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.W r i t e(“ < s c r i p t
l a n g u a g e = j a v a s c r i p t > a l e r t(' 用户已取消注册,');< / s c r i p t > ”);
} p r o t e c t e d
v o i d
L i n k B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ g u a n l i.a s p x ”);} p r o t e c t e d
v o i d
B u t t o n 3 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ L o g i n.a s p x ”);} }
6、显示发帖信息界面, 代码如下,u s i n g
S y s t e m.D a t a.S q l C l i e n t;p u b l i c
p a r t i a l
c l a s s
S h o w A l l
:
S y s t e m.W e b.U I.P a g e {
p r o t e c t e d
v o i d
P a g e _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e){ S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l
C a t a l o g = B B S;I n t e g r a t e d S e c u r i t y = t r u e ”);S q l C o m m a n d
C m d
=
n e w
S q l C o m m a n d(“ s e l e c t
*
f r o m
[ I n f o ]
w h e r e
I D = ”
+ R e q u e s t.Q u e r y S t r i n g [ “ i d ” ] ,c o n n);c o n n.O p e n();S q l D a t a R e a d e r
o b j = C m d.E x e c u t e R e a d e r();w h i l e
(o b j.R e a d()){
L b l N a m e.T e x t
=
o b j.G e t V a l u e(2).T o S t r i n g();L b l D a t e.T e x t
=
o b j.G e t V a l u e(4).T o S t r i n g();T x t S u b j e c t.T e x t
=
o b j.G e t V a l u e(1).T o S t r i n g();T x t C o n t e n t.T e x t
=
o b j.G e t V a l u e(3).T o S t r i n g();
} o b j.C l o s e();c o n n.C l o s e();s t r i n g
s q l
=
“ S e l e c t
*
F r o m
[ i n f o ]
w h e r e
回复编号= ' ”
+
R e q u e s t.Q u e r y S t r i n g [ “ i d ” ]
+
“ ' ”;S q l D a t a A d a p t e r
a d a p t e r
=
n e w
S q l D a t a A d a p t e r(s q l ,c o n n);D a t a S e t
d s
=
n e w
D a t a S e t();a d a p t e r.F i l l(d s ,“ R e p l y ”);D a t a L i s t 1.D a t a S o u r c e
=
d s.T a b l e s [ 0 ].D e f a u l t V i e w;D a t a L i s t 1.D a t a B i n d();
} p r o t e c t e d
v o i d
L i n k B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ g u a n l i.a s p x ”);} }
7、回复界面, 代码如下, u s i n g
S y s t e m.D a t a.S q l C l i e n t;p u b l i c
p a r t i a l
c l a s s
S h o w A r t i c l e
:
S y s t e m.W e b.U I.P a g e {
p r o t e c t e d
v o i d
P a g e _ L o a d(o b j e c t
s e n d e r ,E v e n t A r g s
e){
s t r i n g
s t r
=
“ 1 2 3 4 ”;S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l
C a t a l o g = B B S;I n t e g r a t e d S e c u r i t y = t r u e ”);S q l C o m m a n d
C m d
=
n e w
S q l C o m m a n d(“ s e l e c t
*
f r o m
[ i n f o ]
w h e r e
[ 主题] = ”
+
s t r ,c o n n);c o n n.O p e n();S q l D a t a R e a d e r
o b j
=
C m d.E x e c u t e R e a d e r();w h i l e
(o b j.R e a d()){
L b l N a m e.T e x t
=
o b j.G e t V a l u e(2).T o S t r i n g();L b l D a t e.T e x t
=
o b j.G e t V a l u e(4).T o S t r i n g();T x t S u b j e c t.T e x t
=
o b j.G e t V a l u e(1).T o S t r i n g();T x t C o n t e n t.T e x t
=
o b j.G e t V a l u e(3).T o S t r i n g();}
c o n n.C l o s e();} p r o t e c t e d
v o i d
B t n R e p l y _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
i f
(T x t R e.T e x t
= =
“ ”){
L b l C a u t i o n.T e x t
=
“ 请输入回帖内容,”;
} e l s e {
s t r i n g
S q l S t r;S q l S t r
=
“ I n s e r t
i n t o
i n f o([ 主题] , [ 张贴者昵称] , [ 内容] , [ 张贴时间] , [ 回复编号])
”;S q l S t r
=
S q l S t r
+
“
v a l u e s(' R e : ”
+
T x t S u b j e c t.T e x t +
“ ' , ' ”
+
S e s s i o n [ “ m e m ” ]
+ “ ' , ' ”
+
T x t R e.T e x t;S q l S t r
=
S q l S t r
+
“ ' , ' ”
+
D a t e T i m e.N o w
+
“ ' , ' ”
+
R e q u e s t.Q u e r y S t r i n g [ “ I D ” ]
+
“ ')”;S q l C o n n e c t i o n
c o n n
=
n e w
S q l C o n n e c t i o n(“ D a t a
S o u r c e =.;I n i t i a l C a t a l o g = B B S;I n t e g r a t e d
S e c u r i t y = t r u e ”);S q l C o m m a n d
C m d
=
n e w
S q l C o m m a n d(S q l S t r ,c o n n);c o n n.O p e n();C m d.E x e c u t e N o n Q u e r y();c o n n.C l o s e();L b l C a u t i o n.T e x t
=
“ 已成功回帖,”;} } p r o t e c t e d
v o i d
B t n A l l R e _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ S h o w A l l.a s p x ? i d = ”
+
R e q u e s t.Q u e r y S t r i n g [ “ i d ” ]);} p r o t e c t e d
v o i d
B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ L o g i n.a s p x ”);
} p r o t e c t e d
v o i d
L i n k B u t t o n 1 _ C l i c k(o b j e c t
s e n d e r ,E v e n t A r g s
e){
R e s p o n s e.R e d i r e c t(“ g u a n l i.a s p x ”);
} }
8、Menu 控件,五、总结
上述就是我们组留言板管理系统的全部设计和开发过程。通过这次实训设计, 使我们感到高科技、新知识的力量, 让我们知道我们还有很多知识需要学习,这是我们第一次运用 ASP.NET 做的完整的设计程序, 加之水平有限, 设计中难免有不当之处, 还请老师给予批评、指正。