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

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

入口文件 文件名 index.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

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

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),'修改失败');

}

}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','添加成功');

}else{

$this->redirect('addMsg','添加失败');

}

}else{

$this->display();

}

}

public function del($id){

if(D('Msg')->delete($id)){

$this->success('成功',U('index'),2);

}else{

$this->error('失败',2);

}

}

}

模板 文件名 MsgModel.class.php

namespace HomeModel;

use ThinkModel;

class MsgModel extends Model{

//是否批量验证

protected $patchValidate = true;

protected $_validate = array(

array('title','require','标题不能为空!'),//默认情况下用正则进行验证

array('user','留言人不能为空!'),

array('msg','内容不能为空!'),

);

protected $_auto = array (

array('status','1'),// 新增的时候把status字段设置为1

array('id','NULL'),

array('admin_user','ms'),

array('replay',

array('update_time','time',3,'function'),// 对update_time字段在更新的时候写入当前时间戳

array('send_msg_time',

);

}

视图 文件名 addMsg.html

Title

视图 文件名 index.html

留言列表 -- HoverTree

留言列表

添加

修改

删除

视图 文件名 sendMsg.html

Title

标题:

信息:

留言人:

视图 文件名 upd.html

Title

目录结构

数据库 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,'1','拉克丝的减肥','对方科目了',

(7,'',321423432,'kljflwk','kjsdfnlk','nlkdsjfn','kljnf'),

(3,1479451017,'轻松的发生我','沃尔沃飞',

(8,1479544687,'qwe',

(9,1479544693,

(10,1479544970,

(11,1479544979,'12',

(12,1479545029,

(13,1479546357,

(14,1479547163,

(16,1479547667,'123',

(17,2147483647,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程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


(1)创建数据表: CREATE TABLE IF NOT EXISTS `think_form` (   `id` smallint(4) unsigned NOT NULL AUTO_INCREMENT,
组合查询的主体还是采用数组方式查询,只是加入了一些特殊的查询支持,包括字符串模式查询(_string)、复合查询(_complex)、请求字符串查询(_query),混合查询中的特殊查询每次查询只能定义一个,由于采用数组的
(1)创建模版:/App/Home/View/Form/edit.html   <FORM method=\"post\" action=\"__URL__/update\">
自定义配置文件user.php: <?php return array(    \'sex\'=>\'man\', ); config.php: <?php return array(
在一些成熟的CMS系统中,后台一般都包含一个配置中心(如织梦后台中系统设置),以方便站长在后台修改配置文件;那么这个功能是如果实现的呢?在ThinkPHP中有没有捷径可走呢?答案肯定是有的。下面大概说一下这个功能
废话不多说先上图预览下,即本博客的分页; 这个分页类是在thinkphp框架内置的分页类的基础上修改而来,原分页类的一些设计,在实际运用中感觉不是很方便;
在php中截取字符串的函数有很多,而在thinkphp中也可以直接使用php的函数,本文给大家简单的介绍thinkPHP模板中截取字符串的具体用法,希望能对各位有所帮助。
thinkphp开发图片上传,图片异步上传是目前比较方便的功能,这里我就不写css文件了,将代码写出来。
配置数据库:/app/Common/Conf/config.php 方法一: // 添加数据库配置信息 \'DB_TYPE\'   => \'mysql\',// 数据库类型
/app/Home/Controller/IndexController.class.php
(1)创建数据表: CREATE TABLE IF NOT EXISTS `think_data` (   `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
(1)控制器设置:/app/Home/Controller/IndexController.class.php <?php namespace HomeController; use ThinkController;
(1)普通模式 http://localhost/index.php?m=module&a=action&var=value m参数表示模块,a操作表示操作(模块和操作的URL参数名称是可以配置的),后面的表示其他GET参数。
入库的时候用htmlspecialchars()处理含有html代码的内容 输出的时候用htmlspecialchars_decode()处理含有html代码的内容
<?php define(\'APP_NAME\',\'app\'); define(\'APP_PATH\',\'./app/\'); define(\'APP_DEBUG\',TRUE); // 开启调试模式
(1)创建控制器中定义read方法:/App/Home/Controller/FormController.class.php public function read($id=0){
一、实现不同字段相同的查询条件 $User = M(\"User\"); // 实例化User对象 $map[\'name|title\'] = \'thinkphp\';
如果你的数据完全是内部操作写入而不是通过表单的话(也就是说可以充分信任数据的安全),那么可以直接使用add方法,如:
查询表达式的使用格式: $map[\'字段名\'] = array(\'表达式\',\'查询条件\'); 表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
一、使用字符串作为查询条件 $User = M(\"User\"); // 实例化User对象 $User->where(\'type=1 AND status=1\')->select();