0x01 总体设计

留言模块主要包括以下几个子模块:

  • 模型模块(Model):模型类中封装好用户操作数据库的各种方法,供控制器调用。
  • 视图模块(View):Web视图页面收集用户留言。
  • 控制器模块(Controller):控制器处理Web视图页面收集的数据。

0x02 详细设计

(1)查看留言记录
  • 在控制器的selete()方法中,调用模型类中封装的getSelete()方法查询数据表中所有的数据,并显示到前端。
  • 在Web页面中循环遍历返回的索引数组,即可显示留言列表。
(2)添加留言记录
  • 在前端页面的form表单中获取用户输入的数据。
  • 在控制器的add()方法中,调用模型类中封装的getInsert()方法向数据表中添加数据。
  • 前端页面跳转到留言列表中。
(3)修改留言记录
  • 当要修改数据时,先查找要修改的内容,把查找到的数据放到表单中。
  • 在控制器的update()方法中,调用模型类中封装的getUpdate()方法对留言数据进行修改。
(4)删除留言记录
  • 在Web页面点击“删除”,进入控制器的delete()方法。
  • 在控制器的delete()方法中,调用模型类中封装的getDelete()方法,删除指定的留言数据。
  • 删除成功后页面跳转到留言列表页。

0x03 MVC目录结构

1
2
3
4
5
6
7
8
9
MVC
|-- controller //控制器目录
|-- model //模型目录
|-- view //视图目录
|-- core //核心目录
||--- MVCFunction.class.php //核心文件
||--- DB.class.php //操作数据库核心文件
|-- index.php //入口文件
|-- conf.php //连接数据库配置文件

0x04 数据表设计

创建数据表messages的sql代码如下:

1
2
3
4
5
6
7
8
CREATE TABLE `messages`(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(30) NOT NULL DEFAULT '',
`email` VARCHAR(35) NOT NULL DEFAULT '',
`content` VARCHAR(200) NOT NULL DEFAULT '',
`message_time` DATETIME DEFAULT NULL,
PRIMARY KEY(`id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;

结构如下:

在这里插入图片描述


0x05 MVC配置部署

(1)先对数据库连接文件进行配置,即conf.php文件:

1
2
3
4
5
6
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS',''); //your password
define('DB_NAME','messages_board');
?>

(2)控制器部署

在controller控制器目录下创建MessageController.class.php控制器文件,并在其中创建MessageController控制器类,代码如下:

1
2
3
4
5
<?php
class MessageController{
//code...
}
?>

(3)模型部署

在model模型目录下创建MessageModel.class.php控制器文件,并在其中创建MessageModel模型类,代码如下:

1
2
3
4
5
<?php
class MessageModel{
//code...
}
?>

(4)视图部署

在view视图目录下创建MessageView.class.php控制器文件,并在其中创建MessageView视图类,代码如下:

1
2
3
4
5
<?php
class MessageView{
//code...
}
?>

实现上述部署后,当前目录状态如下:

1
2
3
4
5
6
7
8
9
10
11
12
MVC
|-- controller //控制器目录
||--- MessageController.class.php //留言板控制器
|-- model //模型目录
||--- MessageModel.class.php //留言板模型
|-- view //视图目录
||--- MessageView.class.php //留言板视图
|-- core //核心目录
||--- MVCFunction.class.php //核心文件
||--- DB.class.php //操作数据库核心文件
|-- index.php //入口文件
|-- conf.php //连接数据库配置文件

0x06 代码实现

完整代码已上传到github:https://github.com/LetheSec/MVC_MessageBoard


0x07 结果展示

初始页面:
在这里插入图片描述

点击添加留言即可开始留言:
在这里插入图片描述

可对留言进行修改或删除:
在这里插入图片描述