mvc 实现留言功能代码
时间: 2024-06-11 20:05:03 浏览: 99
这里提供一个简单的留言功能的MVC实现示例:
Model:
```php
class MessageModel {
private $messages = array();
public function __construct() {
// 初始化留言数据
$this->messages = array(
array('author' => '张三', 'content' => '你好啊'),
array('author' => '李四', 'content' => '你好,我是李四'),
);
}
public function getMessages() {
return $this->messages;
}
public function addMessage($author, $content) {
$this->messages[] = array('author' => $author, 'content' => $content);
}
}
```
View:
```php
class MessageView {
public function display($messages) {
echo "<ul>";
foreach ($messages as $message) {
echo "<li>{$message['author']}: {$message['content']}</li>";
}
echo "</ul>";
}
public function displayForm() {
echo "<form method='post'>";
echo "作者:<input type='text' name='author'><br>";
echo "内容:<textarea name='content'></textarea><br>";
echo "<input type='submit' value='提交'>";
echo "</form>";
}
}
```
Controller:
```php
class MessageController {
private $model;
private $view;
public function __construct($model, $view) {
$this->model = $model;
$this->view = $view;
}
public function display() {
$messages = $this->model->getMessages();
$this->view->display($messages);
$this->view->displayForm();
}
public function add() {
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$author = $_POST['author'];
$content = $_POST['content'];
$this->model->addMessage($author, $content);
}
header('Location: index.php');
}
}
```
使用:
```php
$model = new MessageModel();
$view = new MessageView();
$controller = new MessageController($model, $view);
if (isset($_GET['action'])) {
switch ($_GET['action']) {
case 'add':
$controller->add();
break;
default:
$controller->display();
break;
}
} else {
$controller->display();
}
```
在页面中访问 `index.php?action=add` 可以显示留言表单,提交后会添加一条新的留言,并重定向到留言列表页面。访问 `index.php` 可以直接显示留言列表和留言表单。