• 售前

  • 售后

热门帖子
入门百科

PHP实现的简朴留言板功能示例【基于thinkPHP框架】

[复制链接]
我是一头牛2017 显示全部楼层 发表于 2021-10-26 13:24:42 |阅读模式 打印 上一主题 下一主题
本文实例陈诉了PHP实现的简单留言板功能。分享给各人供各人参考,具体如下:
入口文件  文件名 index.php
  1. <?php
  2. // 应用入口文件
  3. // 检测PHP环境
  4. if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
  5. // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
  6. define('APP_DEBUG',True);//开发调试模式
  7. //define('APP_DEBUG',false);//生产模式
  8. // 定义应用目录
  9. define('APP_PATH','./Message/');
  10. // 引入ThinkPHP入口文件
  11. require './ThinkPHP/ThinkPHP.php';
  12. // 亲^_^ 后面不需要任何代码了 就是如此简单
复制代码
配置文件 文件名 config.php
  1. <?php
  2. return array(
  3.   //'配置项'=>'配置值'
  4.   'SHOW_PAGE_TRACE'=>true,
  5.   'DB_TYPE'        => 'mysqli',   // 数据库类型
  6.   'DB_HOST'        => '127.0.0.1', // 服务器地址
  7.   'DB_NAME'        => 'msg',     // 数据库名
  8.   'DB_USER'        => 'root',   // 用户名
  9.   'DB_PWD'        => 'root',     // 密码
  10.   'DB_PORT'        => '3306',    // 端口
  11.   'DB_PREFIX'       => 'ms_',  // 数据库表前缀
  12. );
复制代码
控制器  文件名 MsgController.class.php
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. use Think\Model;
  5. class MsgController extends Controller{
  6.   public function index(){
  7.     $msg = D('Msg');
  8.     $info = $msg->order('id DESC')->select();
  9.     $this->assign('info',$info);
  10.     $this->display();
  11.   }
  12.   public function sendMsg(){
  13.     $msg = new \Home\Model\MsgModel();
  14.     if (!empty($_POST)){
  15.       $data = $msg->create();
  16.       if($data){
  17.         $data['user_hobby'] = implode(',',$data['user_hobby']);
  18.         $z = $msg->add($data);
  19.         if ($z){
  20.           $this->redirect('Msg/sendMsg');
  21.         }
  22.       }else{
  23.         $this->assign('errorInfo',$msg->getError());
  24.       }
  25.     }
  26.     $this->display();
  27.   }
  28.   public function upd($id){
  29.     $msg = D('Msg');
  30.     if (!empty($_POST)){
  31.       $z = $msg->save($_POST);
  32.       if ($z){
  33.         $this->redirect('index',array(),2,'修改成功');
  34.       }else{
  35.         $this->redirect('upd',array('id'=>$id),2,'修改失败');
  36.       }
  37.     }else{
  38.       $info = $msg->find($id);
  39.       $this->assign('info',$info);
  40.       $this->display();
  41.     }
  42.   }
  43.   public function addMsg(){
  44.     $msg = D('Msg');
  45.     if (!empty($_POST)){
  46.       $z = $msg->add($_POST);
  47.       if ($z){
  48.         $this->redirect('index',array(),2,'添加成功');
  49.       }else{
  50.         $this->redirect('addMsg',array(),2,'添加失败');
  51.       }
  52.     }else{
  53.       $this->display();
  54.     }
  55.   }
  56.   public function del($id){
  57.     if(D('Msg')->delete($id)){
  58.       $this->success('成功',U('index'),2);
  59.     }else{
  60.       $this->error('失败',U('index'),2);
  61.     }
  62.   }
  63. }
复制代码
模板  文件名 MsgModel.class.php
  1. <?php
  2. namespace Home\Model;
  3. use Think\Model;
  4. class MsgModel extends Model{
  5.   //是否批量验证
  6.   protected $patchValidate = true;
  7.   protected $_validate = array(
  8.     array('title','require','标题不能为空!'), //默认情况下用正则进行验证
  9.     array('user','require','留言人不能为空!'),
  10.     array('msg','require','内容不能为空!'),
  11.   );
  12.   protected $_auto = array (
  13.     array('status','1'), // 新增的时候把status字段设置为1
  14.     array('id','NULL'),
  15.     array('admin_user','ms'),
  16.     array('replay','NULL'),
  17.     array('update_time','time',3,'function'), // 对update_time字段在更新的时候写入当前时间戳
  18.     array('send_msg_time','time',3,'function'),
  19.   );
  20. }
复制代码
视图  文件名 addMsg.html
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9.   <form action="__SELF__" method="post" >
  10.     <table border="1" width="100%" class="table_a">
  11.       <tr>
  12.         <td>留言时间</td>
  13.         <td><input type="text" name="update_time"/></td>
  14.       </tr>
  15.       <tr>
  16.         <td>留言人</td>
  17.         <td><input type="text" name="user" /></td>
  18.       </tr>
  19.       <tr>
  20.         <td>标题</td>
  21.         <td><input type="text" name="title" /></td>
  22.       </tr>
  23.       <tr>
  24.         <td>内容</td>
  25.         <td><input type="text" name="msg" /></td>
  26.       </tr>
  27.       <tr>
  28.         <td>回复</td>
  29.         <td><textarea name="replay"></textarea></td>
  30.       </tr>
  31.       <tr>
  32.         <td colspan="2" align="center">
  33.           <input type="submit" value="添加">
  34.           <a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" ><input type="button" value="返回"></a>
  35.         </td>
  36.       </tr>
  37.     </table>
  38.   </form>
  39. </div>
  40. </body>
  41. </html>
复制代码
视图  文件名 index.html
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.   <title>留言列表 -- HoverTree</title>
  5.   <style>
  6.     .keleyitable {
  7.       width: 800px;
  8.     }
  9.     .keleyitable table, td, th {
  10.       border: 1px solid green;margin-top:10px;
  11.     }
  12.     .klytd {width:100px;text-align:right
  13.     }
  14.     .hvttd {
  15.       width:500px}
  16.   </style>
  17. </head>
  18. <body>
  19. <div style="margin:0px auto;" class="keleyitable"><h2>留言列表</h2>
  20.   <tr><td class="klytd"><a href="__CONTROLLER__/addMsg" rel="external nofollow" >添加</a></td><td class="hvttd"></td></tr>
  21.   <volist name="info" id="vo">
  22.     <table>
  23.       <tr><td class="klytd">留言时间:</td><td class="hvttd">{$vo.update_time|date="Y-m-d H:i:s",###}</td></tr>
  24.       <tr><td class="klytd">留言人:</td><td class="hvttd">{$vo.user}</td></tr>
  25.       <tr><td class="klytd">标题:</td><td class="hvttd">{$vo.title}</td></tr>
  26.       <tr><td class="klytd">内容:</td><td class="hvttd">{$vo.msg}</td></tr>
  27.       <tr><td class="klytd">回复:</td><td class="hvttd">{$vo.replay}</td></tr>
  28.     </table>
  29.     <tr><td class="klytd"><a href="__CONTROLLER__/upd/id/{$vo.id}" rel="external nofollow" >修改</a></td><td class="hvttd"></td></tr>
  30.     <tr><td class="klytd"><a href="__URL__/del/id/{$vo.id}" rel="external nofollow" >删除</a></td><td class="hvttd"></td></tr>
  31.   </volist>
  32. </div>
  33. <div style="width:800px;margin:10px auto;font-family:Arial, Helvetica, sans-serif;text-align:center;">HoverTree &copy; 2014 keleyi.com </div>
  34. <!--最近打算开发一个留言板,asp.net的开源项目,http://hovertree.codeplex.com -->
  35. </body>
  36. </html>
复制代码
视图  文件名 sendMsg.html
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <title>Title</title>
  6. </head>
  7. <body>
  8.   <form action="" method="post">
  9.     标&nbsp;&nbsp;&nbsp;题: <input type="text" name="title"><span style="color:red;">{$errorInfo.title}</span><br><br>
  10.     信&nbsp;&nbsp;&nbsp;息: <input type="text" name="msg"><span style="color:red;">{$errorInfo.msg}</span><br><br>
  11.     留言人: <input type="text" name="user"><span style="color:red;">{$errorInfo.user}</span><br><br>
  12.     <input type="submit" value="提交">
  13.   </form>
  14. </body>
  15. </html>
复制代码
视图 文件名  upd.html
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <title>Title</title>
  6. </head>
  7. <body>
  8. <div>
  9.   <form action="__SELF__" method="post" >
  10.     <input type="hidden" name="id" value="{$info.id}">
  11.     <table border="1" width="100%" class="table_a">
  12.       <tr>
  13.         <td>留言时间</td>
  14.         <td><input type="text" name="update_time" value="{$info.update_time}" /></td>
  15.       </tr>
  16.       <tr>
  17.         <td>留言人</td>
  18.         <td><input type="text" name="user" value="{$info.user}" /></td>
  19.       </tr>
  20.       <tr>
  21.         <td>标题</td>
  22.         <td><input type="text" name="title" value="{$info.title}" /></td>
  23.       </tr>
  24.       <tr>
  25.         <td>内容</td>
  26.         <td><input type="text" name="msg" value="{$info.msg}" /></td>
  27.       </tr>
  28.       <tr>
  29.         <td>回复</td>
  30.         <td><textarea name="replay">{$info.replay}</textarea></td>
  31.       </tr>
  32.       <tr>
  33.         <td colspan="2" align="center">
  34.           <input type="submit" value="修改">
  35.           <a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" ><input type="button" value="返回"></a>
  36.         </td>
  37.       </tr>
  38.     </table>
  39.   </form>
  40.   </div>
  41. </body>
  42. </html>
复制代码
目次布局

数据库 sql语句
  1. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  2. SET time_zone = "+00:00";
  3. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  4. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  5. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  6. /*!40101 SET NAMES utf8 */;
  7. --
  8. -- 資料庫: `msg`
  9. --
  10. -- --------------------------------------------------------
  11. --
  12. -- 表的結構 `ms_msg`
  13. --
  14. CREATE TABLE IF NOT EXISTS `ms_msg` (
  15. `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
  16. `admin_user` varchar(100) NOT NULL COMMENT '管理员',
  17. `update_time` int(10) NOT NULL COMMENT '更新时间',
  18. `status` int(2) NOT NULL COMMENT '状态',
  19. `send_msg_time` int(10) NOT NULL COMMENT '留言时间',
  20. `user` varchar(100) NOT NULL COMMENT '留言人',
  21. `title` varchar(100) NOT NULL COMMENT '标题',
  22. `msg` varchar(200) NOT NULL COMMENT '内容',
  23. `replay` varchar(200) NOT NULL COMMENT '回复',
  24. PRIMARY KEY (`id`)
  25. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='留言表' AUTO_INCREMENT=19 ;
  26. --
  27. -- 轉存資料表中的資料 `ms_msg`
  28. --
  29. INSERT INTO `ms_msg` (`id`, `admin_user`, `update_time`, `status`, `send_msg_time`, `user`, `title`, `msg`, `replay`) VALUES
  30. (1, 'ms', 1479449110, 1, 1479449110, '1', '拉克丝的减肥', '对方科目了', 'NULL'),
  31. (7, '', 321423432, 0, 0, 'kljflwk', 'kjsdfnlk', 'nlkdsjfn', 'kljnf'),
  32. (3, 'ms', 1479451017, 1, 1479451017, '1', '轻松的发生我', '沃尔沃飞', 'NULL'),
  33. (8, 'ms', 1479544687, 1, 1479544687, '', 'qwe', '', 'NULL'),
  34. (9, 'ms', 1479544693, 1, 1479544693, 'qwe', 'qwe', 'qwe', 'NULL'),
  35. (10, 'ms', 1479544970, 1, 1479544970, 'qwe', 'qwe', 'qwe', 'NULL'),
  36. (11, 'ms', 1479544979, 1, 1479544979, '12', '12', '12', 'NULL'),
  37. (12, 'ms', 1479545029, 1, 1479545029, '12', '12', '12', 'NULL'),
  38. (13, 'ms', 1479546357, 1, 1479546357, '12', '12', '12', 'NULL'),
  39. (14, 'ms', 1479547163, 1, 1479547163, '12', '12', '12', 'NULL'),
  40. (16, 'ms', 1479547667, 1, 1479547667, '12', '12', '123', 'NULL'),
  41. (17, 'ms', 2147483647, 1, 1479547682, '上来昆明3', '说的了付款', '蓝山咖啡', '123213');
  42. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  43. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  44. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
复制代码
更多关于thinkPHP相关内容感兴趣的读者可查察本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
盼望本文所述对各人基于ThinkPHP框架的PHP步伐设计有所资助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作