主页 > 知识库 > PHP实现的简单留言板功能示例【基于thinkPHP框架】

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

热门标签:团购网站 阿里云 Mysql连接数设置 服务器配置 科大讯飞语音识别系统 银行业务 Linux服务器 电子围栏

本文实例讲述了PHP实现的简单留言板功能。分享给大家供大家参考,具体如下:

入口文件  文件名 index.php

?php
// 应用入口文件
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);//开发调试模式
//define('APP_DEBUG',false);//生产模式
// 定义应用目录
define('APP_PATH','./Message/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
// 亲^_^ 后面不需要任何代码了 就是如此简单

配置文件 文件名 config.php

?php
return array(
  //'配置项'=>'配置值'
  'SHOW_PAGE_TRACE'=>true,
  'DB_TYPE'        => 'mysqli',   // 数据库类型
  'DB_HOST'        => '127.0.0.1', // 服务器地址
  'DB_NAME'        => 'msg',     // 数据库名
  'DB_USER'        => 'root',   // 用户名
  'DB_PWD'        => 'root',     // 密码
  'DB_PORT'        => '3306',    // 端口
  'DB_PREFIX'       => 'ms_',  // 数据库表前缀
);

控制器  文件名 MsgController.class.php

?php
namespace Home\Controller;
use Think\Controller;
use Think\Model;
class MsgController extends Controller{
  public function index(){
    $msg = D('Msg');
    $info = $msg->order('id DESC')->select();
    $this->assign('info',$info);
    $this->display();
  }
  public function sendMsg(){
    $msg = new \Home\Model\MsgModel();
    if (!empty($_POST)){
      $data = $msg->create();
      if($data){
        $data['user_hobby'] = implode(',',$data['user_hobby']);
        $z = $msg->add($data);
        if ($z){
          $this->redirect('Msg/sendMsg');
        }
      }else{
        $this->assign('errorInfo',$msg->getError());
      }
    }
    $this->display();
  }
  public function upd($id){
    $msg = D('Msg');
    if (!empty($_POST)){
      $z = $msg->save($_POST);
      if ($z){
        $this->redirect('index',array(),2,'修改成功');
      }else{
        $this->redirect('upd',array('id'=>$id),2,'修改失败');
      }
    }else{
      $info = $msg->find($id);
      $this->assign('info',$info);
      $this->display();
    }
  }
  public function addMsg(){
    $msg = D('Msg');
    if (!empty($_POST)){
      $z = $msg->add($_POST);
      if ($z){
        $this->redirect('index',array(),2,'添加成功');
      }else{
        $this->redirect('addMsg',array(),2,'添加失败');
      }
    }else{
      $this->display();
    }
  }
  public function del($id){
    if(D('Msg')->delete($id)){
      $this->success('成功',U('index'),2);
    }else{
      $this->error('失败',U('index'),2);
    }
  }
}

模板  文件名 MsgModel.class.php

?php
namespace Home\Model;
use Think\Model;
class MsgModel extends Model{
  //是否批量验证
  protected $patchValidate = true;
  protected $_validate = array(
    array('title','require','标题不能为空!'), //默认情况下用正则进行验证
    array('user','require','留言人不能为空!'),
    array('msg','require','内容不能为空!'),
  );
  protected $_auto = array (
    array('status','1'), // 新增的时候把status字段设置为1
    array('id','NULL'),
    array('admin_user','ms'),
    array('replay','NULL'),
    array('update_time','time',3,'function'), // 对update_time字段在更新的时候写入当前时间戳
    array('send_msg_time','time',3,'function'),
  );
}

视图  文件名 addMsg.html

!DOCTYPE html>
html lang="en">
head>
  meta charset="UTF-8">
  title>Title/title>
/head>
body>
div>
  form action="__SELF__" method="post" >
    table border="1" width="100%" class="table_a">
      tr>
        td>留言时间/td>
        td>input type="text" name="update_time"/>/td>
      /tr>
      tr>
        td>留言人/td>
        td>input type="text" name="user" />/td>
      /tr>
      tr>
        td>标题/td>
        td>input type="text" name="title" />/td>
      /tr>
      tr>
        td>内容/td>
        td>input type="text" name="msg" />/td>
      /tr>
      tr>
        td>回复/td>
        td>textarea name="replay">/textarea>/td>
      /tr>
      tr>
        td colspan="2" align="center">
          input type="submit" value="添加">
          a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" >input type="button" value="返回">/a>
        /td>
      /tr>
    /table>
  /form>
/div>
/body>
/html>

视图  文件名 index.html

!DOCTYPE html>
html xmlns="http://www.w3.org/1999/xhtml">
head>
  title>留言列表 -- HoverTree/title>
  style>
    .keleyitable {
      width: 800px;
    }
    .keleyitable table, td, th {
      border: 1px solid green;margin-top:10px;
    }
    .klytd {width:100px;text-align:right
    }
    .hvttd {
      width:500px}
  /style>
/head>
body>
div style="margin:0px auto;" class="keleyitable">h2>留言列表/h2>
  tr>td class="klytd">a href="__CONTROLLER__/addMsg" rel="external nofollow" >添加/a>/td>td class="hvttd">/td>/tr>
  volist name="info" id="vo">
    table>
      tr>td class="klytd">留言时间:/td>td class="hvttd">{$vo.update_time|date="Y-m-d H:i:s",###}/td>/tr>
      tr>td class="klytd">留言人:/td>td class="hvttd">{$vo.user}/td>/tr>
      tr>td class="klytd">标题:/td>td class="hvttd">{$vo.title}/td>/tr>
      tr>td class="klytd">内容:/td>td class="hvttd">{$vo.msg}/td>/tr>
      tr>td class="klytd">回复:/td>td class="hvttd">{$vo.replay}/td>/tr>
    /table>
    tr>td class="klytd">a href="__CONTROLLER__/upd/id/{$vo.id}" rel="external nofollow" >修改/a>/td>td class="hvttd">/td>/tr>
    tr>td class="klytd">a href="__URL__/del/id/{$vo.id}" rel="external nofollow" >删除/a>/td>td class="hvttd">/td>/tr>
  /volist>
/div>
div style="width:800px;margin:10px auto;font-family:Arial, Helvetica, sans-serif;text-align:center;">HoverTree copy; 2014 keleyi.com /div>
!--最近打算开发一个留言板,asp.net的开源项目,http://hovertree.codeplex.com -->
/body>
/html>

视图  文件名 sendMsg.html

!DOCTYPE html>
html lang="en">
head>
  meta charset="UTF-8">
  title>Title/title>
/head>
body>
  form action="" method="post">
    标nbsp;nbsp;nbsp;题: input type="text" name="title">span style="color:red;">{$errorInfo.title}/span>br>br>
    信nbsp;nbsp;nbsp;息: input type="text" name="msg">span style="color:red;">{$errorInfo.msg}/span>br>br>
    留言人: input type="text" name="user">span style="color:red;">{$errorInfo.user}/span>br>br>
    input type="submit" value="提交">
  /form>
/body>
/html>

视图 文件名  upd.html

!DOCTYPE html>
html lang="en">
head>
  meta charset="UTF-8">
  title>Title/title>
/head>
body>
div>
  form action="__SELF__" method="post" >
    input type="hidden" name="id" value="{$info.id}">
    table border="1" width="100%" class="table_a">
      tr>
        td>留言时间/td>
        td>input type="text" name="update_time" value="{$info.update_time}" />/td>
      /tr>
      tr>
        td>留言人/td>
        td>input type="text" name="user" value="{$info.user}" />/td>
      /tr>
      tr>
        td>标题/td>
        td>input type="text" name="title" value="{$info.title}" />/td>
      /tr>
      tr>
        td>内容/td>
        td>input type="text" name="msg" value="{$info.msg}" />/td>
      /tr>
      tr>
        td>回复/td>
        td>textarea name="replay">{$info.replay}/textarea>/td>
      /tr>
      tr>
        td colspan="2" align="center">
          input type="submit" value="修改">
          a href="__CONTROLLER__/index" rel="external nofollow" rel="external nofollow" >input type="button" value="返回">/a>
        /td>
      /tr>
    /table>
  /form>
  /div>
/body>
/html>

目录结构

数据库 sql语句

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- 資料庫: `msg`
--
-- --------------------------------------------------------
--
-- 表的結構 `ms_msg`
--
CREATE TABLE IF NOT EXISTS `ms_msg` (
 `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
 `admin_user` varchar(100) NOT NULL COMMENT '管理员',
 `update_time` int(10) NOT NULL COMMENT '更新时间',
 `status` int(2) NOT NULL COMMENT '状态',
 `send_msg_time` int(10) NOT NULL COMMENT '留言时间',
 `user` varchar(100) NOT NULL COMMENT '留言人',
 `title` varchar(100) NOT NULL COMMENT '标题',
 `msg` varchar(200) NOT NULL COMMENT '内容',
 `replay` varchar(200) NOT NULL COMMENT '回复',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='留言表' AUTO_INCREMENT=19 ;
--
-- 轉存資料表中的資料 `ms_msg`
--
INSERT INTO `ms_msg` (`id`, `admin_user`, `update_time`, `status`, `send_msg_time`, `user`, `title`, `msg`, `replay`) VALUES
(1, 'ms', 1479449110, 1, 1479449110, '1', '拉克丝的减肥', '对方科目了', 'NULL'),
(7, '', 321423432, 0, 0, 'kljflwk', 'kjsdfnlk', 'nlkdsjfn', 'kljnf'),
(3, 'ms', 1479451017, 1, 1479451017, '1', '轻松的发生我', '沃尔沃飞', 'NULL'),
(8, 'ms', 1479544687, 1, 1479544687, '', 'qwe', '', 'NULL'),
(9, 'ms', 1479544693, 1, 1479544693, 'qwe', 'qwe', 'qwe', 'NULL'),
(10, 'ms', 1479544970, 1, 1479544970, 'qwe', 'qwe', 'qwe', 'NULL'),
(11, 'ms', 1479544979, 1, 1479544979, '12', '12', '12', 'NULL'),
(12, 'ms', 1479545029, 1, 1479545029, '12', '12', '12', 'NULL'),
(13, 'ms', 1479546357, 1, 1479546357, '12', '12', '12', 'NULL'),
(14, 'ms', 1479547163, 1, 1479547163, '12', '12', '12', 'NULL'),
(16, 'ms', 1479547667, 1, 1479547667, '12', '12', '123', 'NULL'),
(17, 'ms', 2147483647, 1, 1479547682, '上来昆明3', '说的了付款', '蓝山咖啡', '123213');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

您可能感兴趣的文章:
  • PHP实现基本留言板功能原理与步骤详解
  • 使用PHP开发留言板功能
  • 使用PHP连接数据库实现留言板功能的实例讲解(推荐)
  • php+Memcached实现简单留言板功能示例
  • 简单实现PHP留言板功能
  • 基于thinkPHP框架实现留言板的方法
  • PHP结合Mysql数据库实现留言板功能
  • php实现网站留言板功能
  • php制作文本式留言板
  • php简单的留言板与回复功能具体实现
  • php开发留言板的CRUD(增,删,改,查)操作
  • php xml留言板 xml存储数据的简单例子
  • 来自经典的打造简单的PHPMYSQL留言板
  • 一个简单的PHP&MYSQL留言板源码
  • 一个可分页的基于文本的PHP留言板源码
  • PHP+MySql实现一个简单的留言板

标签:衢州 衡水 广元 蚌埠 大理 枣庄 江苏 萍乡

巨人网络通讯声明:本文标题《PHP实现的简单留言板功能示例【基于thinkPHP框架】》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266