PHP案例留言板设计.docx

上传人:b****0 文档编号:311925 上传时间:2022-10-08 格式:DOCX 页数:19 大小:118.56KB
下载 相关 举报
PHP案例留言板设计.docx_第1页
第1页 / 共19页
PHP案例留言板设计.docx_第2页
第2页 / 共19页
PHP案例留言板设计.docx_第3页
第3页 / 共19页
PHP案例留言板设计.docx_第4页
第4页 / 共19页
PHP案例留言板设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

PHP案例留言板设计.docx

《PHP案例留言板设计.docx》由会员分享,可在线阅读,更多相关《PHP案例留言板设计.docx(19页珍藏版)》请在冰豆网上搜索。

PHP案例留言板设计.docx

PHP案例留言板设计

案例留言板设计

一、概述

现在很多网站都考虑到了与用户之间的互动交流,于是出现了各种各样的留言板。

在留言板中,用户可以看到前面使用者的留言,也可以留下自己的言论。

对商务网站,用留言板可以了解用户的需求和意见。

现在,网上也有很多免费的留言板程序,但亲自动手做一个,能体会其中的奥秘,应该是一个不错的主意。

二、系统架构

留言板的功能可大可小,小则简单地让用户浏览留言和写一个短篇留言,具有回复的功能;大则可以做到能按不同讨论分门别类的WebBBS系统,再大就是Web社区系统了。

本案例留言板功能具有:

1.浏览留言。

以一个主页形式,显示留言具有分页浏览功能。

2.回复留言。

通过主页的“回复留言”超级链接,进入写留言页面。

3.隐藏留言。

具有管理员身份的用户具有屏蔽不适宜公布留言的功能,也是在通过主页的“隐藏留言”超级链接,进入留言管理页面。

工作流程图如图1所示:

图1

说明:

1.用户向服务器发出访问请求;

2.服务器根据用户的角色显示主页面的功能

1)一般用户,在留言板的主页面中有浏览和回复功能;

2)管理员,在留言板的主页面中有浏览、回复和屏蔽功能;

3.留言信息记录在数据库中;

4.服务器从数据库中读取留言信息显示在页面上,也把用户的留言存储在数据库中。

三、系统设计

1.逻辑结构设计

根据对系统架构的描述,可得系统的逻辑结构,如图2所示。

主页:

浏览留言

Index.php

链接:

回复留言

链接:

隐藏留言

屏蔽留言:

回复留言

hide.php

链接:

提交

写留言:

回复留言

write.php

链接:

提交

图2

2.数据库设计

在MySQL数据库服务器上建立名为guest数据库,其中包含数据表guestbook,各字段的定义和说明如表1:

表1guest数据库中的数据表guestbook结构

字段

类型

NULL

说明

备注

serial

int(5)

留言序列表

auto_increment

name

char(20)

使用者姓名

time

timestamp(14)

留言时间

msg

text

留言内容

email

char(30)

使用者邮箱地址

flag

char

(1)

显示标志Y/N

缺省为Y

注:

通过phpMyadmin建立,在MySQL的data文件夹中会自动创建以此数据库为名的文件夹,包含相关数据。

本案例用到的SQL命令如表2。

表2本案例用到的SQL命令

命令格式

含义

SELECT*FROMguestbookWHEREflag='Y'ORDERBYtimeDESC

按字段的逆序取回数据表guestbook里的标记flag=’y’的记录信息

INSERTINTOguestbook(name,time,msg,email)values('$name',now(),'$msg','$email')

向数据表guestbook的表尾追加记录

UPDATEguestbookSETflag='N'WHEREserial=$serial

向新数据表guestbook的字段flag信息

3.界面设计

主页界面

标题行

说明行

导航条

留言信息区

留言内容

留言信息区

留言内容

写留言页界面

标题行

昵称文本框

Email文本框

控制按钮:

写好了、重写、放弃

屏蔽留言页

信息操作成功提示行,返回主页。

四、编码实现

1.主页

代码文件:

index.php

//输出HTML头

echo"

留言板

--

a{text-decoration:

none;background-color:

#8080FF;color:

#FFFF80;}

a:

hover{background-color:

#FF80FF;color:

#FFFF80;}

-->

留言板

";

//判断来者是否为管理员----[mark1]

$webmasteIP=array("127.0.0.1");

$isMaster=false;

for($i=0;$i

{

if($REMOTE_ADDR==$webmasteIP[$i])

{

$isMaster=true;

break;

}

}

//连接数据库服务器----[mark2]

$connection=@mysql_connect("localhost","root","")ordie("无法连接数据库!

");

@mysql_query("setnames'gb2312'");

@mysql_select_db("guest")ordie("无法选择数据库!

");

//向服务器发送查询请求

$query="SELECT*FROMguestbookWHEREflag='Y'ORDERBYtimeDESC";

$result=mysql_query("$query",$connection)ordie("浏览失败");

//取回留言

$count=0;

while($row=mysql_fetch_array($result))

{

$gb[$count][serial]=$row[serial];

$gb[$count][name]=$row[name];

$gb[$count][time]=$row[time];

$gb[$count][msg]=$row[msg];

$gb[$count][email]=$row[email];

$gb[$count][flag]=$row[falg];

$count++;

}

mysql_close($connection)ordie("无法断开与数据库的连接");

//制作导航条----[mark3]

$indexstr="我要留言|";

//当用户进来时把$page设为0

if(SQUERY_STRING=="")

$page=0;

//计算页数

$count=count($gb);

$msgPerPage=10;

$start=$page*$msgPerPage;

$end=$start+$msgPerPage;

if($end>$count)

$end=$count;

$totalpage=ceil($count/$msgPerPage);

echo"目前留言板共有".$count."条留言,本页列出了第".($start+1)."至".$end."条\n";

//制作页导航

if($page>0)

$indexstr=$indexstr."

page=".($page-1).">上一页|";

for($i=0;$i<$totalpage;$i++)

{

if($i!

=$page)

$indexstr=$indexstr."

page=$i>第".($i+1)."页";

else

$indexstr=$indexstr."第".($i+1)."页";

if($i!

=($totalpage-1))

$indexstr=$indexstr."|";

}

if($page<$totalpage-1)

$indexstr=$indexstr."

page=".($page+1).">下一页";

//输出导航条

echo"

$indexstr

\n";

//输出留言----[mark4]

for($i=$start;$i<$end;$i++)

{

//把换行符转换成

$msg=nl2br($gb[$i][msg]);

//格式化时间输出

$dbdate=$gb[$i][time];

$year=substr($dbdate,0,4);

$month=substr($dbdate,5,2);

$day=substr($dbdate,8,2);

$hour=substr($dbdate,11,2);

$min=substr($dbdate,14,2);

$sec=substr($dbdate,17,2);

$time=$month."".$day."".$year."".$hour.":

".$min.":

".$sec;

//输出一条留言的所有信息

echo"


\n";

echo"";

echo"\n";

echo"";

echo"序列号:

".$gb[$i][serial];

echo"
昵  称:

";

if(trim($gb[$i][email])!

="")

{

echo"

".$gb[$i][email].">";

echo"".$gb[$i][name]."";

echo"";

}

echo"
时  间:

".$time;

echo"

action=reply&serial=".$gb[$i][serial].">回复作者";

if($isMaster)

{

echo"|

serial=".$gb[$i][serial].">屏蔽这一篇";

}

echo"\n";

echo"[正文]
";

echo$msg;

echo"\n";

echo"\n";

}

echo"


\n";

echo$indexstr;

echo"";

?

>

--index.php--

代码解读

1)输出HTML头

用echo语句把HTML标记作为字符串引入。

2)判断来者是否为管理员----[mark1]

定义了一个数组$webmasteIP,记录留言管理员的IP;

然后检查进来的是不是管理员,记录在$IsMaster;

使用系统变量$REMOTE_ADDR来获取用户的IP。

3)连接数据库服务器----[mark2]

连接数据库服务器;

设置数据库服务器处理的字符集,以处理汉字在浏览器上的显示;

打开数据库guest

按字段time的逆序取回数据表gu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1