首页 > 编程 > PHP > 正文

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

2019-11-21 20:15:14
字体:
来源:转载
供稿:网友

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

入口文件  文件名 index.php

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

配置文件 文件名 config.php

<?phpreturn 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

<?phpnamespace 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

<?phpnamespace 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 © 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">    标   题: <input type="text" name="title"><span style="color:red;">{$errorInfo.title}</span><br><br>    信   息: <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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表