框架学习五:tp框架制作小型留言板系统

一、入口文件ctl.php

1 <?php
2 // 引入及配置框架
3 define('APP_DEBUG',true);
4 include('../ThinkPHP/ThinkPHP.php');

 二、首页文件msg.html

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
 3 <head>
 4 <title>新建网页</title>
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <meta name="description" content="" />
 7 <meta name="keywords" content="" />
 8 <script type="text/javascript">
 9 
10 </script>
11 
12 <style type="text/css">
13 </style>
14 </head>
15     <body>
16         <h1>用TP完成增删改查</h1>
17         <form action="ctl.php/Msg/add" method="post">
18             标题:<input type="text" name="title" /><br />
19             内容:<textarea name="content"></textarea>
20             <input type="submit" value="提交" />
21         </form>
22     </body>
23 </html>

三、配置文件config.php

 1 <?php
 2 return array(
 3     //'配置项'=>'配置值'
 4 
 5      /* URL设置 */
 6     'URL_CASE_INSENSITIVE'  => false,   // 默认false 表示URL区分大小写 true则表示不区分大小写
 7     'URL_MODEL'             => 1,       // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
 8     // 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE  模式); 3 (兼容模式)  默认为PATHINFO 模式,提供最好的用户体验和SEO支持
 9     'URL_PATHINFO_DEPR'     => '/',    // PATHINFO模式下,各参数之间的分割符号
10 
11         /* 数据库设置 */
12     'DB_TYPE'               => 'mysql',     // 数据库类型
13     'DB_HOST'               => 'localhost', // 服务器地址
14     'DB_NAME'               => 'tp',          // 数据库名
15     'DB_USER'               => 'root',      // 用户名
16     'DB_PWD'                => '',          // 密码
17     'DB_PORT'               => '3306',        // 端口
18     'DB_PREFIX'             => '',    // 数据库表前缀
19     'DB_FIELDTYPE_CHECK'    => false,       // 是否进行字段类型检查
20     'DB_FIELDS_CACHE'       => true,        // 启用字段缓存
21     'DB_CHARSET'            => 'utf8',      // 数据库编码默认采用utf8
22 );
23 ?>

四、Action文件MsgAction

 1 <?php
 2 // 本类由系统自动生成,仅供测试用途
 3 class MsgAction extends Action {
 4     public function add(){
 5          $msgModel = new MsgModel();
 6         // var_dump($msgModel->fabu($_POST));
 7         if($msgModel->add($_POST)) {
 8             echo '发布成功';
 9             echo '<a href="/Msg/ctl.php/Msg/msgList">查看</a>';
10         } else {
11             echo '发布失败';
12         }
13     }
14      public function msgList() {
15         // 留言列表
16         $msgModel = new MsgModel();
17         $list = $msgModel->select();
18 
19         $this->assign('list',$list);
20         // 默认到TPL/类名目录下,寻找"方法名.html"
21 
22         /*$model = new Model('contact');
23         $all = $model->select();
24         */
25 
26         // 同上的效果,换个写法
27         // 下行的M方法,相当于new Model,并指定表名是contact
28         //$model = M('contact');
29         //$all = $model->select();
30 
31         $this->display();
32         
33         //print_r($all);
34     }
35     public function del() {
36         // 用D函数,来简化model的创建
37         $msgModel = D('Msg'); // 用D函数可以防止重复实例化一个MODEL
38         
39         // 传递一个参数,自动理解是按主键删除
40         if($msgModel->delete($_GET['id'])) {
41             echo '删除成功';
42             echo '<a href="/Msg/ctl.php/Msg/msgList">查看</a>';
43         } else {
44             echo '删除失败';
45         }
46     }
47     public function up() {
48         $msgModel = D('Msg');
49         $m = $msgModel->find($_GET['id']);
50         $this->assign('m',$m);
51         $this->display();
52     }
53 
54     public function upok() {
55         // 接收POST
56         $msgModel = D('Msg');
57 
58         // 在保存,$_POST里,有一个id字段,
59         // 则model在主键字段的情况,会自动根据主键来进行更新.
60         if($msgModel->save($_POST)) {
61             echo '修改成功';
62             echo '<a href="/Msg/ctl.php/Msg/msgList">查看</a>';
63         } else {
64             echo '修改失败';
65         }
66     }
67 }

 五、Model文件MsgModel.class.php

1 <?php
2 
3 class MsgModel extends Model {
4    
5 }

六、数据库文件

1 create database tp charset utf8;
2 
3 create table msg(
4     id int auto_increment primary key,
5     title varchar(30) not null default '',
6     content varchar(200) not null default ''
7 )engine myisam charset utf8;

七、模板文件
  1、msgList文件

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
 3 <head>
 4 <title>新建网页</title>
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <meta name="description" content="" />
 7 <meta name="keywords" content="" />
 8 <script type="text/javascript">
 9 
10 </script>
11 
12 <style type="text/css">
13 </style>
14 </head>
15     <body>
16         <h1>留言列表</h1>
17         <table border="1">
18             <tr><td>标号</td><td>标题</td><td>内容</td><td>删|改</td></tr>
19             <foreach name="list" item="m">
20             <tr>
21             <td>{$m.id}</td>
22             <td>{$m.title}</td>
23             <td>{$m.content}</td>
24             <td>
25             <a href="/Msg/ctl.php/Msg/del/id/{$m.id}"></a>|
26             <a href="/Msg/ctl.php/Msg/up/id/{$m.id}"></a>
27             </td>
28             </tr>
29             </foreach>
30         </table>
31     </body>
32 </html>

2、up.html文件

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
 3 <head>
 4 <title>新建网页</title>
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6 <meta name="description" content="" />
 7 <meta name="keywords" content="" />
 8 <script type="text/javascript">
 9 
10 </script>
11 
12 <style type="text/css">
13 </style>
14 </head>
15     <body>
16         <h1>用TP完成增删改查</h1>
17         <form action="/Msg/ctl.php/Msg/upok" method="post">
18             标题:<input type="text" name="title" value="{$m.title}" /><br />
19             内容:<textarea name="content">{$m.content}</textarea>
20             <input type="hidden" name="id" value="{$m.id}" />
21             <input type="submit" value="修改" />
22         </form>
23     </body>
24 </html>

八、系统运行效果图片

首页图片:

增加留言成功页面

查看留言页面

删除成功页面

修改页面

修改成功页面

原文地址:https://www.cnblogs.com/zhanghonggang/p/3175559.html