限制用戶重複發帖
打開 include/newthread.inc.php 查找:[code]$attachment = ($allowpostattach && $attachments = attach_upload()) ? 1 : 0;[/code]
在下面添加:
[code]// ********************* 重複發帖檢測 *****************************
$repeatlevel = 4; // 重複發帖的驗證級別
$chk_sql = "SELECT COUNT(*) FROM {$tablepre}posts WHERE ";
$chk_term = "";
switch($repeatlevel) {
case 1:
$chk_term = "subject='{$subject}'";
break;
case 2:
$chk_term = "message='{$message}'";
break;
case 3:
$chk_term = "subject='{$subject}' AND message='{$message}'";
break;
case 4:
$chk_term = "subject='{$subject}' AND message='{$message}' AND authorid='{$discuz_uid}'";
break;
}
if($chk_term) {
$chk_num = $db->result($db->query($chk_sql . $chk_term), 0);
if($chk_num > 0) {
showmessage('請不要重複發帖,這很浪費資源的。請返回。');
}
}
// ********************* 重複發帖檢測 *****************************
[/code]
這樣就行了。
關於發帖的重複檢測級別,直接修改 [color=red]$repeatlevel[/color] 參數就行了。
下面是當這個變量的值為1~4的時候所代表的級別:
[quote]1 - 標題與數據庫裡的記錄一致即算重複
2 - 內容與數據庫裡的記錄一致即算重複
3 - 內容、標題與數據庫裡的記錄都一致算重複
4 - 內容、標題、用戶名與數據庫裡的記錄都一致算重複[/quote] 稍微补充一下
引用 mfboy:
如果要改到回复和编辑帖子也要检测,自己参考着修改 newreply.inc.php 和 editpost.inc.php 文件。把上面的代码放到更新数据库的语句上面就行了。
页:
[1]