后端开发|php教程
ThinkPHP,无限级,分类原理,留言,回复,功能
后端开发-php教程
本文所述留言板程序使用了无限级分类的原理,可以实现无限级留言与回复。留言列表gclist保留了留言层次空格,使留言–回复层次分明。分享给大家供大家参考。具体分析如下:
电脑应用源码,vscode添加提示,ubuntu命令美化,tomcat8 面试,赤兔sqlite+注册码,爬虫下载安全性怎么样,php 小网站,seo推广的后期优化,平台式网站模板,手机京东网站模板下载安装lzw
功能上,本程序可以实现无限级留言与回复,即对留言回复,对回复的留言回复。当然你也可以作有限制的控制,使其只对留言回复,关键是在模板代码中去掉回复的留言中的“回复该留言”即可。欢迎去拍砖!
安卓音乐播放器 源码,ubuntu系统刷xp,tomcat的输出日志乱码,mac版爬虫,php卫星开发方向,百度seo优化排名需要多长时间lzw
程序效果下图例:
ace admin 源码,ubuntu多硬盘安装,web项目部署tomcat,爬虫scrapy管道,php 批量执行lonux命令,证券SEOlzw
完整源码点击此处本站下载。
数据表:
-- ----------------------------
-- Table structure for `wb_guestbook`
-- ----------------------------
DROP TABLE IF EXISTS `wb_guestbook`;
CREATE TABLE `eway_guestbook` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`pid` int(10) NOT NULL,
`email` varchar(50) NOT NULL,
`path` varchar(100) NOT NULL,
`username` varchar(30) NOT NULL,
`updatetime` int(10) NOT NULL,
`ip` varchar(15) NOT NULL,
`url` varchar(200) NOT NULL,
`inputtime` int(10) NOT NULL,
`content` text NOT NULL,
`verify` varchar(32) NOT NULL,
`isreply` tinyint(1) NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;
代码:
<?php
// +----------------------------------------------------------------------
// | WBlog
// +----------------------------------------------------------------------
// | Copyright (c) All rights reserved.
// +----------------------------------------------------------------------
// | Author: 网菠萝果
// +----------------------------------------------------------------------
// $Id$
/**
+------------------------------------------------------------------------------
* @class 留言板控制器GuestbookAction.class.php
+------------------------------------------------------------------------------
*/
class GuestbookAction extends CommonAction {
public function index(){
$garr= D(Guestbook)->gclist("id,username,inputtime,pid,url,content,path,concat(path,-,id) as bpath");
$this->assign(Gklist, $garr[list]);
$this->assign(page,$garr[page]);
$this->display();
}
// +----------------------------------------------------------------------
// | 添加留言
// +----------------------------------------------------------------------
public function add(){
$this->adddata(Guestbook);
}
// +----------------------------------------------------------------------
// | 网址跳转。如在表单url添加网址的话,点击会跳转到相关网站
// +----------------------------------------------------------------------
public function tourl(){
$this->gettourl(Guestbook);
}
}
?>
<?php
// +----------------------------------------------------------------------
// | WBlog
// +----------------------------------------------------------------------
// | Copyright (c) All rights reserved.
// | Author: 网菠萝果
// +----------------------------------------------------------------------
// $Id$
/**
+------------------------------------------------------------------------------
* @function 留言板模型 类GuestbookModel.class.php
+------------------------------------------------------------------------------
*/
class GuestbookModel extends RelationModel{
// +----------------------------------------------------------------------
// | $_validate表单自动验证
// +----------------------------------------------------------------------
protected $_validate = array(
array(email, equire,请填写您的邮箱!),
array(email,email,邮箱格式错误!),
);
// +----------------------------------------------------------------------
// | $_auto表单自动填充
// +----------------------------------------------------------------------
protected $_auto=array(
array(status,1),
array(inputtime, ime,1,function),
array(content,content,1,callback),
array(url,geturl,1,callback),
array (inputtime, ime,1,function),
array(path,path,3,callback),
array(username,getusername,3,callback),
);
// +----------------------------------------------------------------------
// | getusername()过滤用户名
// +----------------------------------------------------------------------
public function getusername(){
if (isset ($_POST[username])) {
if(trim($_POST[username])==网菠萝果){
return $data=  ̄□ ̄;
}elseif(strlen($_POST[username]) >10){
return $data= msubstr($_POST[username],0,5);
}else{
return $data= $_POST[username];
}
}
}
// +----------------------------------------------------------------------
// | path()返回子类的path,父类的path的值为0
// +----------------------------------------------------------------------
public function path(){
$pid=isset($_POST[pid])?(int)$_POST[pid]:0;
$id=$_POST[id];
if($pid==0){
return 0;
}
$fat=$this->where(array(id => $pid))->find();
$data=$fat[path].-.$fat[id];
return $data;
}
// +----------------------------------------------------------------------
// | content()过滤留言内容
// +----------------------------------------------------------------------
public function content() {
if (isset ($_POST[content]) && !empty ($_POST[content])) {
$data =deleteHtmlTags($_POST[content]);
$data =safeHtml($data);
if (strlen($data) > 1000) {
$data = msubstr($data, 0, 500);
}
return $data;
}
}
// +----------------------------------------------------------------------
// | content()过滤URL
// +----------------------------------------------------------------------
public function geturl(){
if (isset ($_POST[url])) {
$data = deleteHtmlTags($_POST[url]);
$data = safeHtml($data);
return $data=$data?$data:"";
}
}
// +----------------------------------------------------------------------
// |gclist($field,$where=\,$pagesize=30)留言列表
// +----------------------------------------------------------------------
// |$field,字段
// +----------------------------------------------------------------------
// |$where查询条件,默认为空
// +----------------------------------------------------------------------
// |$pagesize分页记录,默认为30
// +----------------------------------------------------------------------
// |使用方法,看上面的控制器调用
// +----------------------------------------------------------------------
public function gclist($field,$where=\,$pagesize=30) {
import("ORG.Util.Page");
$count = $this->field(id)->where($where)->count();
$P = new Page($count, $pagesize);
$list=$this->field($field)->where($where)->order(path,id)->limit($P->firstRow . , . $P->listRows)->select();
foreach ($list as $k => $v) {
$list[$k][count] = count(explode(-, $v[path]));
$list[$k][ ousername]=$this->where(array(id=> $v[pid]))->getField(username);
$str = \;
if ($v[pid] 0) {
for ($i = 0; $i < $list[$k][count] * 2; $i++) {
$str .= ;
}
$str .= ;
}
$list[$k][space] = $str;
}
$P->setConfig(header, 篇);
$P->setConfig(prev, "«");
$P->setConfig( ext, »);
$P->setConfig(first, |«);
$P->setConfig(last, »|);
$page = $P->show();
$arr=array(page=>$page,list=>$list);
return $arr;
}
}
?>