版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、案例留言板设计概述现在很多网站都考虑到了与用户之间的互动交流,于是出现了各种各样的 留言板。在留言板中,用户可以看到前面使用者的留言,也可以留下自己的言论。 对商务网站,用留言板可以了解用户的需求和意见。现在,网上也有很多免费的留言板程序,但亲自动手做一个,能体会其中的奥秘,应该是一个不错的主意。系统架构留言板的功能可大可小,小则简单地让用户浏览留言和写一个短篇留言,具有回复的功能;大则可以做到能按不同讨论分门别类的WebBBS系统,再大就是Web社区系统了。本案例留言板功能具有:1 浏览留言。以一个主页形式,显示留言具有分页浏览功能。2回复留言。通过主页的“回复留言”超级链接,进入写留言页面
2、。3 隐藏留言。具有管理员身份的用户具有屏蔽不适宜公布留言的功能,也是在 通过主页的“隐藏留言”超级链接,进入留言管理页面。工作流程图如图1所示:图1说明:1 用户向服务器发出访问请求;2 服务器根据用户的角色显示主页面的功能1) 一般用户,在留言板的主页面中有浏览和回复功能;2) 管理员,在留言板的主页面中有浏览、回复和屏蔽功能;3 留言信息记录在数据库中;4 服务器从数据库中读取留言信息显示在页面上,也把用户的留言存储在数据 库中。三、系统设计1 逻辑结构设计根据对系统架构的描述,可得系统的逻辑结构,如图2所示图22 数据库设计在MySQL数据库服务器上建立名为guest数据库,其中包含数
3、据表guestbook,各字段的定义和说明如表1:表1 guest数据库中的数据表guestbook结构字段类型NULL说明备注serialint(5)否留言序列表auto in creme ntn amechar(20)否使用者姓名timetimestamp(14)是留言时间msgtext否留言内容emailchar(30)是使用者邮箱地址flagchar(1)是显示标志Y/N缺省为Y注:通过phpMyadmin建立,在MySQL的data文件夹中会自动创建以此数据库为名的 文件夹,包含相关数据。本案例用到的SQL命令如表2表2本案例用到的SQL命令命令格式含义SELECT * FROM g
4、uestbook WHERE flag=YORDER BY time DESC按子段的逆序取回数据表guestbook里的标记flag=的记录信息INSERT INTOguestbook( name,time,msg,email)values($ name, now(),$msg,$email)向数据表guestbook的表尾追加记录UPDATE guestbookSET flag=N WHEREserial=$serial向新数据表guestbook的子段flag信息3.界面设计主页界面标题行说明行导航条留言信息区留言内容留言信息区留言内容写留言页界面 标题行昵称文本框Email 文本框控制
5、按钮:写好了、重写、放弃屏蔽留言页信息操作成功提示行,返回主页。四、编码实现1. 主页代码文件:in dex.php?/输出HTML头echo 留言板 留言板 J/判断来者是否为管理员-markl$webmastelP=array(127.0.0.1);$isMaster=false;for($i=0;$icou nt($webmastelP);$i+)if ($REMOTE_ADDR=$webmastelP$i)$isMaster=true;break;/连接数据库服务器-mark2$connection=mysql_connect(localhost,root,) or die(无法连接数
6、据库!);mysql_query(set names gb2312);mysql_select_db(guest) or die(无法选择数据库!);/向服务器发送查询请求$query=SELECT * FROM guestbook WHERE flag=Y ORDER BY time DESC; $result=mysql_query($query,$connection) or die(浏览失败);/取回留言$cou nt=O;while($row=mysql_fetch_array($result)$gb$cou ntserial=$rowserial;$gb$co un t n ame
7、=$row n ame;$gb$cou nttime=$rowtime;$gb$co un tmsg=$rowmsg;$gb$cou ntemail=$rowemail;$gb$cou ntflag=$rowfalg;$co un t+;mysql_close($connection) or die(无法断开与数据库的连接”);/制作导航条-mark3$indexstr= 我要留言 |;/当用户进来时把$page设为0if (SQUERY_STRING=”)$page=0;/计算页数$co un t=co un t($gb);$msgPerPage=10;$start=$page*$msgPe
8、rPage;$en d=$start+$msgPerPage;if($e nd$cou nt)$en d=$co unt;$totalpage=ceil($co un t/$msgPerPage);echo 目前留言板共有.$count.条留言,本页列出了第.($start+1).至.$end.条n;/制作页导航if($page0)$indexstr=$indexstr. 上一页 | ;for($i=0;$i$totalpage;$i+)if($i!=$page)$indexstr=$indexstr. 第.($i+1).页 ;else$indexstr=$indexstr. 第.($i+1)
9、.页 ; if($i!=($totalpage-1)$i ndexstr=$i ndexstr. | ;if($page$totalpage-1)$indexstr=$indexstr. 下页 ;/输出导航条echo $i ndexstrn;/输出留言-mark4for($i=$start;$i$e nd;$i+)把换行符转换成$msg=nl2br($gb$imsg);格式化时间输出$dbdate=$gb$itime;$year=substr($dbdate,0,4);$mo nth=substr($dbdate,5,2);$day=substr($dbdate,8,2);$hour=subs
10、tr($dbdate,11,2);$mi n=substr($dbdate,14,2);$sec=substr($dbdate,17,2);$time=$m on th.$day. .$year. .$hour.:.$mi n.:.$sec;/输出一条留言的所有信息echo n;echo ;echo n;echo ;echo 序列号:.$gb$iserial;echo 昵 称:;if(trim($gb$iemail)!=)echo ;echo .$gb$iname.;echo ;echo 时 间:.$time;echo 回复作者 ; if($is
11、Master)echo | 屏蔽这一篇 ;echo n;echo 正文;echo $msg;echo n;echo n;echo n;echo $in dexstr;echo ;?-in dex.php-代码解读1)输出HTML头用echo语句把HTML标记作为字符串引入。2)判断来者是否为管理员-mark1定义了一个数组$webmastelP,记录留言管理员的IP ;然后检查进来的是不是管理员,记录在$IsMaster ;使用系统变量$REMOTE_ADDR来获取用户的IP。3)连接数据库服务器-mark2连接数据库服务器;设置数据库服务器处理的字符集,以处理汉字在浏览器上的显示;打开数据库
12、guest按字段time的逆序取回数据表guestbook里的标记flag=的记录信息(即筛选可显示的留言记录),并把它们保存在二维数组$gb中;关闭数据库连接。4)制作导航条-mark3程序段中实现了四个功能(1)导航条上的信息存储在变量$indexstr中设置导航条上的第一条信息:我要留言(链接到写留言页面)设置导航条上的第二条信息:目前留言板共有条留言,本页列出了第至条(2)设置分页显示的参数,算法描述如下初始化当前页$page为0;统计获取的有效记录($gb)数,存放在变量$count中;设置每页显示的记录数为10;计算当前页开始的记录编号,存放在变量$start中;计算当前页结束的记
13、录编号,存放在变量$end中;若当前页码结束的记录编号 $end大于有效记录数$count,则当前页结束的记录编号 $end =有效记录数$count;计算数据表中的记录最后一页的页码,存放在变量$totalpage中(3)制作页导航,算法描述如下若当前页大于0,则信息后追加链接到“上一页”并在链接信息后追加分割线I同时,依次显示并链接到各页(如第 2页),但不链接本页 若当前页未到最后一页,在链接信息后追加分割线|若当前页小于最后一页,则信息后追加链接到“下一页”(4)显示导航条上的信息$indexstr5)输出留言 mark4分两个区域输出留言信息,一是留言者的信息和操作链接,二是留言内容
14、。(1)留言者的信息,包括序列号、昵称、Email和留言时间,操作主要是写留言和管理员屏蔽留言。使用函数nI2br()把换行符转换成使用一组日期函数对时间进行格式化处理使用表格规划输出每条记录中有关留言者的信息输出“回复留言”和“屏蔽这一篇”的链接(2)留言内容,直接把留言内容字段的信息显示在表格中。6)此程序中用到的变量祥解变量名取值含义$webmastelPIP地址,数组记录管理员的IP地址$isMasterTRUE|FALSE记录是否管理员$REMOTE ADDRIP地址,系统变量记录登录网页的IP地址$connection整数,标识连接数据库的句柄记录链接数据库是否成功$querySQ
15、L命令记录SQL命令$result查询数据集记录执行SQL命令后的返回结果$cou nt整数记录查询数据集中包含的记录数$row数组记录查询数据集中的一条记录$gb查询数据集中的值,二维数组记录查询结果数据集的值$in dexstr字符串记录导航条上的显示信息$page整数记录当前所显示的页码$msgPerPage整数记录一页所显示的记录数$start整数记录当前页所显示记录的第一个$e nd整数记录当前页所显示记录的最后一个$totalpage整数记录总页码$dbdate$year | $month |$day $hour | $mi n | $sec $time系统时间整数 整数 字符串记
16、录记录中时间字段 time的值 分别记录时间字段time中的年月日 分别记录时间字段time中的时分秒 记录转化后的时间$msg字符串记录转化后的留言内容7)此程序中用到函数祥解函数用法含义cou nt()参数取数组型统计数组中兀素的个数mysql_c onn ect()三个参数分别是服务器名,用户 名,用户密码连接到指定的数据库服务器上,访问 用户建立的数据库die()参数取字符串型返回字符串的信息,错误警报mysql query()参数为SQL命令执行SQL命令mysql select db()参数为数据库名打开数据库文件mysql fetch array()参数为字符串以数组返回查询数据
17、集中的记录mysql close()参数为标识连接数据库的句柄关闭数据库文件ceil()参数为数值对数值进行收尾处理nl2br()参数为字符串把字符中的回车符转化为substr($dbdate, m,n)三个参数分别是字符串,整数, 整数从字符串$dbdate中的第m个位置起连续取n个字符作为新字符串trim()字符串取出字符串前后的空格2写留言代码文件:writer.php 写留言 写留言 FORM mothod=post actio n= 昵 称: En ail&n bsp;: 内 容:?$text=;if($action=放弃!)mark1
18、echo ;/-mark1else if($action=写好了 !)-mark2if ($n ame!= & $msg!=)连接数据库服务器-$connection=mysql_connect(localhost,root,) or die(无法连接数据库!); mysql_select_db(guest) or die(无法选择数据库!);向服务器发送查询请求$query=INSERT INTO guestbook( name,time,msg,email)values($ name, no w(),$msg,$email);$result=mysql_query($query,$conn
19、ection) or die(存入数据库失败”); mysql_close($connection) or die(无法断开与数据库的连接”); echo n;echo 填写留言成功!n;echo ;echo 五秒钟后自动返回系统 n;echo n;/-mark2else/-mark3echo n;echo 出错了 n;echo 信息不全!昵称和内容是必须填写的!n;echo n;/mark3?-writer.php-代码解读主要完成了三项工作:1) 以HTML编写了表单,用于填写昵称、Emial和留言内容。2) 对单击表单中的“放弃! ”按钮的处理:重定向回主页。mark13)对单击表单中的“写好了! ”按钮的处理,这又有两种情况:(1)昵称和Email不空的情况处理mark2连接数据库服务器;存入数据;关闭数据库服务器连接;向浏览器输出成功的信息;重定向回主页。(2)昵称和Email为空的情况处理:向浏览器输出出错的信息。mark34)此程序中用到的变量祥解。变量名取值含义$
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采矿许可证延续换证合同
- 云南公务员面试5
- 地方公务员山西申论114
- 2002年云南省国家公务员统一考试
- 24.4 第1课时 解直角三角形及其简单应用 华师大版数学九年级上册课件
- 四川省公务员面试模拟11
- 新疆申论模拟71
- 地方公务员海南申论2013年
- 2024年村民土地转让协议
- 新疆申论模拟3
- 小学英语人教PEP版6年级(上)期中考试复习
- 评茶员(高级)复习题含参考答案
- 2019年4月高等教育自学考试资产评估真题
- 《北京市社会保险单位信息变更登记表》
- 2024年国家开放大学(电大)-混凝土结构设计(A)考试近5年真题集锦(频考类试题)带答案
- 新员工三级安全教育考试试题参考答案
- 《中华人民共和国道路交通安全法实施条例》知识专题培训
- 全国巾帼家政服务职业技能大赛(母婴护理员)理论考试题库(含答案)
- 仿生青蛙机器人的设计与运动控制
- 2024-2025学年八年级英语上学期期中测试卷03人教新目标版
- 2025届高考语文一轮复习:荒诞小说 专题突破 课件
评论
0/150
提交评论