新闻中心
phpbb防御刷帖技巧设置限制规定时间内会员发帖数
作者 / 无忧主机 时间 2013-05-15 17:21:50
作为一个论坛的站长管理好论坛是第一要务,要想论坛发展好控制论坛垃圾帖、灌水帖是非常重要的,尤其是新手站长,往往对这种情况有些手足无措,常常受到垃圾帖子、广告的骚扰和迫害,严重影响到了用户对网站的体验。那么,是否有一种行之有效解决问题的方法类?我们常见想过措施新会员注册验证、通过ip注册时间隔限制、新手发帖限制等,这些方法结合一起来用,就能形成一个强大的用户发帖限制系统。无忧主机(www.51php,.com)小编在上一篇“phpbb如何修改帖子和主题标题字数限制”介绍了限制phpbb帖子标题的长度限制,我们依然可以用限制的方法,限制规定时间内用户发帖数。意思就是现在以这些用户在规定时间内(如2小时)能够发几张帖子(如5张),从而降低论坛被刷帖,导致海量的垃圾信息的出现。具体实现方法如下: 1、首先就是需要您通过ftp工具连接您的php虚拟主机。 2、找到网站根目录(public_html)下的posting.php 下载到您本地,并通过文本编辑器打开。 查找:
// Is the user able to post within this forum? if ($post_data['forum_type'] != FORUM_POST && in_array($mode, array('post', 'bump', 'quote', 'reply'))) { trigger_error('USER_CANNOT_FORUM_POST'); }在这段代码的后面加上
Only allow a fixed amount of posts per time ***/ switch( $mode ) { case 'post': // Creating a topic case 'reply': // Reply to an existing topic case 'quote': // Reply to an existing topic using a quote define( 'MAX_POST_COUNT', 5 ); // How many posts(最多发贴数,可自定义)... define( 'MAX_POST_TIME', 60 ); // ...in how many minutes(规定多少时间) define( 'MAX_EDIT_COUNT_ERRORMSG', ' 在 ' .MAX_POST_TIME.' 分钟你只能发表 '. MAX_POST_COUNT. ' 个主题贴 ' ); $iCntEdit= 0; $sql= 'SELECT count( post_id ) AS cnt FROM '. POSTS_TABLE. ' WHERE poster_id= '. $user-> data['user_id']. ' AND post_time>= '. ( time()- MAX_POST_TIME* 60 ); $rSql= $db-> sql_query( $sql ); while( $aRow= $db-> sql_fetchrow( $rSql ) ) $iCntEdit= $aRow['cnt']; $db-> sql_freeresult( $rSql ); if( $iCntEdit>= MAX_POST_COUNT ) trigger_error( MAX_EDIT_COUNT_ERRORMSG ); break; }修改好保存并上传到空间取代以前的posting.php文件 3、清空浏览器缓存。您就可以正常使用发帖限制了,您可以自己去做一个测试。 4、如果发帖后超限制的提示出现乱码注意下编码格式,错误如下图: 关于论坛的防范恶意帖子的内容,你可以参考: 设置Discuz!X2.5 防灌水垃圾帖设置策略 phpbb技术文档翻译:phpbb权限设置论坛用户权限说明文档 纯Linux环境下高端免备案【香港独立IP地址】php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名
本文地址:https://www.51php.com/phpbb/10576.html






