从零开发一个留言板页面

提示

学习本教程您需要先掌握基础PHP知识

本教程意在教会您编写控制器、创建模版、查询数据库

1、创建php程序

  • control文件夹是我们的程序文件夹
  • 我们在control文件夹新建一个newpage.php
  • class名为文件名_controller,继承controller

文件名: /control/newpage.php

<?php
class newpage_controller extends controller
{

}

2、加载留言版模版

  • 路由规则: /文件名/方法名
    留言板首页是http://域名/newpage/index,所以方法名是index
  • 执行db::select从数据库查询数据赋值到$list
  • 加载模版。 参考:模版加载
function index()
{
    $list = db::select("select * from datalist");
    require self::tpl('newpage');
}

3.把留言写入数据库

  • 添加留言保存方法 save
  • 助手函数gp获取留言存入变量$data
  • 执行db::query数据库$sql语句存入数据库
  • 返回到留言板显示页面 /newpage/index
function save(){
    $data = gp('data');
    db::query("insert into datalist (`data`) values ('$data')");
    self::redirect('/newpage/index');
}

最后得到的`/control/newpage.php`

<?php
class newpage_controller extends controller
{
    function index()
    {
        $list = db::select("select * from datalist");
        require self::tpl('newpage');
    }

    function save()
    {
        $data = gp('data');
        db::query("insert into datalist (`data`) values ('$data')");
        self::redirect('/newpage/index');
    }
}

4.创建模版

  • 在模版文件夹下创建newpage.htm
  • 默认模版文件夹目录为/templates/default
  • 这里用到了foreach列表循环标签,参考上节:模版标签

最终模版

<!DOCTYPE html>
<html>
	<head>
		<title>留言板</title>
	</head>
	<body>
		<form action="/newpage/save">
			<textarea name="data"></textarea>
			<input type="submit" value="提交" />
		</form>
		<ul>
			<!-- foreach $list -->
			<li>{$data}</li>
			<!-- /foreach -->
		</ul>
	</body>
</html>

5.创建数据表

CREATE TABLE `datalist` (
  `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `data` text NOT NULL
);

访问 http://域名/newpage/index 即可查看我们的留言板

至此,我们的第一个插件完成了