PHP实现的简单留言板功能示例【基于thinkPHP框架】
时间:2022-07-27
本文章向大家介绍PHP实现的简单留言板功能示例【基于thinkPHP框架】,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了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 HomeController;
use ThinkController;
use ThinkModel;
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 HomeModelMsgModel();
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 HomeModel;
use ThinkModel;
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程序设计有所帮助。
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC