- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP+Mysql无刷新问答评论系统(源码)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
自己写的一个评论系统源码分享给大家,包括有表情,还有评论机制。用户名是随机的 。
针对某一篇文章进行评论 。
- function subcomment() {
- $data['uid'] = getUserid();
- $data['mtype'] = I("post.mtype", 0, 'int');
- if ($data['uid'] == '') {
- echo json_encode(array("code" => -1));
- } else {
- $content = addslashes(str_replace(" ", "<br />", $_POST['content']));
- $data['tid'] = I("post.id", 0, 'int'); //文章id
- if (strlen(preg_replace('/[ [^)]+? ]/x', '', $content)) < 10) {
- echo json_encode(array("code" => "short than 10", "error" => "评论的内容不能少于10个字符。"));
- exit;
- }
- if (C("DB_PWD") != '') {
- if (time() - session("comment_time") < 60 && session("comment_time") > 0) {//2分钟以后发布
- echo json_encode(array("code" => "fast", "error" => "您提交评论的速度太快了,请稍后再发表评论。"));
- exit;
- }
- }
- $data['pid'] = I("post.pid", 0, 'int');
- $data['pid_sub'] = I("post.pid_sub", 0, 'int');
- $lyid = $data['pid_sub'] > 0 ? $data['pid_sub'] : $data['pid'];
- if ($lyid > 0) {
- $lyinfo = M("comment")->field("uid")->where("id='" . $lyid . "'")->find();
- $data['touid'] = $lyinfo['uid'];
- } else {
- $data['touid'] = 2;
- }
- $data['addtime'] = time();
- $emots = getTableFile("emot");
- foreach ($emots as $v) {
- $content = str_replace("[" . $v['name'] . "]", "<img alt='" . $v['name'] . "' src='" . __APP__ . "/Public/emot/" . ($v['id'] - 1) . ".gif'>", $content);
- }
- $data['content'] = addslashes($content);
- $info = M("comment")->field("id")->where("content='" . $data['content'] . "'")->find();
- if ($info['id']) {
- echo json_encode(array("code" => "comment_repeat", "error" => "检测到重复评论,您似乎提交过这条评论了"));
- exit;
- }
- $lastid = M("comment")->add($data);
- $points_comment = 20;
- if ($lastid > 0) {
- $day_start = strtotime(date("Y-m-d"));
- $day_end = $day_start + 3600 * 24;
- $comment_num_day = M("comment")->where("uid = " . $data['uid'] . " AND addtime between " . $day_start . " AND " . $day_end . "")->count();
- if ($comment_num_day <= 5) { //少于5条每天,则添加积分
- // addPoints("comment", $points_comment, $data['uid'], "评论获得" . $points_comment . "积分", 5, 1);
- }
- // addMessage('comment', $data['tid'], $data['pid'], $data['mtype'], $data['touid'], $content);
- }
- session("comment_time", time());
- echo json_encode(array("code" => 200, "comment" => $content, "points" => $points_comment));
- }
- }
根据分页参数获取对应评论列表 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
function
comments() {
$id
= I(
"get.id"
, 0,
'int'
);
$mtype
= I(
"get.mtype"
, 1,
'int'
);
$page
= I(
"get.page"
, 1,
"int"
);
$totalnum
= I(
"get.totalnum"
, 1,
"int"
);
$start
= 10 * (
$page
- 1);
$sql
=
"tid = "
.
$id
.
" AND pid = 0"
;
$comments
= M(
"comment"
)->field(
"id,uid,content,addtime"
)->where(
$sql
)->order(
"id DESC"
)->limit(
$start
.
",10"
)->select();
// echo M("comment")->getlastsql();
foreach
(
$comments
as
$k
=>
$v
) {
$comments
[
$k
][
'sub'
] = M(
"comment"
)->field(
"id,uid,content,pid_sub"
)->where(
"tid = "
.
$id
.
" AND pid = "
.
$v
[
'id'
] .
""
)->order(
"id ASC"
)->select();
}
$this
->assign(
"id"
,
$id
);
$this
->assign(
"mtype"
,
$mtype
);
$this
->assign(
"comments"
,
$comments
);
$this
->assign(
"comments_num"
,
$totalnum
- (
$page
- 1) * 10);
$this
->display();
}
|
切换评论分页 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
if
($(
"#detail-page"
).length > 0) {
var
id = $(
"#detail-page"
).attr(
"data-id"
);
var
mtype = $(
"#detail-page"
).attr(
"data-mtype"
);
var
totalnum = $(
"#detail-page"
).attr(
"data-totalnum"
);
$(
"#detail-page"
).children(
"a"
).click(
function
() {
var
page = parseInt($(this).attr(
"data-page"
));
$(
"#detail-page"
).children(
"a"
).removeClass(
"current"
);
$(
"#detail-page"
).children(
"a"
).eq(page - 1).addClass(
"current"
);
$(
"#comment_list"
).html(
"<div style='padding:20px 0;text-align:center;'><img src='"
+ site_url +
"Public/images/loading.gif'></div>"
);
$.get(getUrl(
"Box/comments"
), {
page: page,
id: id,
totalnum: totalnum,
mtype: mtype
},
function
(data) {
$(
"#comment_list"
).html(data)
})
})
}
|
评论表和表情表已放在压缩包里 。
1
2
3
4
5
6
7
8
9
10
11
12
|
CREATE TABLE IF NOT EXISTS `sucai_comment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`touid` int(11) DEFAULT
'0'
,
`pid_sub` int(11) DEFAULT
'0'
,
`tid` int(11) NOT NULL,
`pid` int(11) DEFAULT
'0'
,
`mtype` tinyint(1) NOT NULL,
`content` text NOT NULL,
`addtime` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5560 ;
|
。
最后此篇关于PHP+Mysql无刷新问答评论系统(源码)的文章就讲到这里了,如果你想了解更多关于PHP+Mysql无刷新问答评论系统(源码)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
I'm posting this in Q&A style as there are currently a few posts on S/O with similar questions and a
我正在尝试做一些我认为非常简单的事情——传递一个队列和一个函数,并将该函数应用于队列中的每个项目——但我无法编译它。 class Foo { public: void doStuff();
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 5 年前。 Improve th
我的密码使用的是 sha512,但 secret 问题和答案是纯文本。问题是:我需要散列 secret 答案吗?如果是这样,它使用什么数据类型,它仍然是 char(128) 吗?我假设 secret
以前是否有人使用 Freebase 作为知识库在问答机上做过任何工作?我在网上搜索了这个,但没有得到任何实质性的东西。有谁知道在输入非结构化问题并且 QA 引擎利用 Freebase 提供答案的这个领
以前是否有人使用 Freebase 作为知识库在问答机上做过任何工作?我在网上搜索了这个,但没有得到任何实质性的东西。有谁知道在输入非结构化问题并且 QA 引擎利用 Freebase 提供答案的这个领
我正在尝试编写一个您自己的时区转换器,我需要一种方法来确定该月的最后一天可能是哪一天。经过一些研究,我发现了寻找闰年的公式。 这是一个很小的贡献,但也许我会为其他人节省我花 20 分钟弄清楚并应用它的
我有一个 Azure Function(不在容器中)。 当我将其发布到本地 Azure 时,就可以了。 当我从 Azure Devops 发布它时,部署成功,但该函数无法运行。错误“Azure 函数运
当 __getitem__ 映射到内部序列类型时,以下哪一项是推荐的执行方式? class A: def __init__(self, ...): ... se
如何在我的 ng2 应用程序中使用预处理器?我正在使用 angular-cli 和 the original docs对我来说还不够清楚。此外,我想在全局范围内使用这些样式,而不仅仅是在组件范围内。
StackO 的 friend 们大家好。 最后一天,我研究了一种解决方案,将不同表中的特定值导出到一个 XML 文件中。主要问题:我有三层嵌套表。由于我在编写这些函数时遇到了问题,因此我想与您分享我
这是一个问答,这意味着我正在分享我对我遇到的问题的解决方案/答案: 问题是 getting started guide来自 apache 站点的并不完全是最新的,经过一些摆弄之后,我设法让示例工作。
我是一名优秀的程序员,十分优秀!