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目录结构
MVC
|-- controller //控制器目录
|-- model //模型目录
|-- view //视图目录
|-- core //核心目录
||--- MVCFunction.class.php //核心文件
||--- DB.class.php //操作数据库核心文件
|-- index.php //入口文件
|-- conf.php //连接数据库配置文件
0x04 数据表设计
创建数据表messages的sql代码如下:
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文件:
<?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控制器类,代码如下:
<?php
class MessageController{
//code...
}
?>
(3)模型部署
在model模型目录下创建MessageModel.class.php控制器文件,并在其中创建MessageModel模型类,代码如下:
<?php
class MessageModel{
//code...
}
?>
(4)视图部署
在view视图目录下创建MessageView.class.php控制器文件,并在其中创建MessageView视图类,代码如下:
<?php
class MessageView{
//code...
}
?>
实现上述部署后,当前目录状态如下:
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 结果展示
初始页面:
点击添加留言即可开始留言:
可对留言进行修改或删除: