在网站管理中,防止恶意投稿或灌水行为是一个重要环节。本文将介绍一种通过判断用户积分是否达到一定数量来限制投稿和评论功能的方法。这种方法不仅实用,还能有效提升网站内容的质量。
实现这一功能的具体步骤如下:
1. 投稿功能修改:打开 member/article_add.php 文件,找到以下代码段:
if(empty($dopost)) {
在其后添加以下代码:
// 检查用户
$username = $cfg_ml->M_UserName;
$l_jifen = $dsql->GetOne("Select scores from `js_member` where uname='$username';");
if ($l_jifen['scores'] >= 200) {
$dsql->ExecuteNoneQuery("Update `js_member` set logintime='".time()."', loginip='".GetIP()."' where mid='{$cfg_ml->M_ID}'; ");
} else {
ResetVdValue();
ShowMsg("对不起,需要200以上积分才能发布文档!", "-1", "0", 3000);
exit();
}
这段代码的作用是检查用户的积分是否达到200分。如果积分不足,则提示用户无法发布文档,并跳转到指定页面。
2. 评论功能修改:打开 plus/feedback_ajax.php 文件,找到以下代码段:
// 检查用户
$username = empty($username) ? '游客' : $username;
if (empty($notuser)) $notuser = 0;
if ($notuser == 1) {
$username = $cfg_ml->M_ID > 0 ? '匿名' : '游客';
} else if ($cfg_ml->M_ID > 0) {
$username = $cfg_ml->M_UserName;
} else if ($username != '' && $pwd != '') {
$rs = $cfg_ml->CheckUser($username, $pwd);
if ($rs == 1) {
$dsql->ExecuteNoneQuery("Update `js_member` set logintime='".time()."', loginip='".GetIP()."' where mid='{$cfg_ml->M_ID}'; ");
}
$cfg_ml = new MemberLogin();
}
将其替换为以下代码:
// 检查用户
$username = empty($username) ? '游客' : $username;
if (empty($notuser)) $notuser = 0;
if ($notuser == 1) {
$username = $cfg_ml->M_ID > 0 ? '匿名' : '游客';
} else if ($cfg_ml->M_ID > 0) {
$username = $cfg_ml->M_UserName;
$l_jifen = $dsql->GetOne("Select scores from `js_member` where uname='$username';");
if ($l_jifen['scores'] < 200) {
echo json_encode(array('msg' => '对不起,您的积分不足200,无法发表评论!'));
exit();
}
} else if ($username != '' && $pwd != '') {
$rs = $cfg_ml->CheckUser($username, $pwd);
if ($rs == 1) {
$dsql->ExecuteNoneQuery("Update `js_member` set logintime='".time()."', loginip='".GetIP()."' where mid='{$cfg_ml->M_ID}'; ");
}
$cfg_ml = new MemberLogin();
}
这段代码同样用于检查用户积分是否达到200分。如果积分不足,则返回错误信息并阻止评论提交。
通过上述修改,可以有效地限制低积分用户的投稿和评论行为,从而减少恶意投稿和灌水现象的发生。对于其他类似模型的修改,也可以按照上述方法进行调整。
希望这篇文章对您有所帮助!如果您有任何疑问,请随时联系我。