框架学习五: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>
八、系统运行效果图片
首页图片:
增加留言成功页面
查看留言页面
删除成功页面
修改页面
修改成功页面