AS 锡安ZionTechExchange 
» 游客:  注册 | 登录 | 冻结用户(激活)?sid=HkQ7eH | 会员

RSS 订阅当前论坛  

上一主题 下一主题
       
标题: 社区监狱 4.0 For 5.0.0 [06/12/30] [官方安全修正]     
 
Phoenix001
妙语书生 Lv5




UID 181234
精华 2
积分 13
帖子 1490
金币 3003 块
阅读权限 10
注册 2019-5-27
状态 离线
社区监狱 4.0 For 5.0.0 [06/12/30] [官方安全修正]

社区监狱 4.0 For 5.0.0 [06/12/30] [官方安全修正]
https://discuz.dismall.com/thread-496735-1-1.html
(出处: Discuz免费开源建站系统)


.....................................................................................................................................................................................................................



//===========================================================
//插件名称:社区监狱 4.0
//适用版本:Discuz! 5.0.0
//插件编码:GBK
//作  者:pk0909,童虎,rel4x,connan
//最后修改:Freddy
//最后更新:2006-12-30
//技术支持:www.discuz.net
//数据升级:有
//修改文件:include/newthread.inc.php、include/global.func.php、include/newreply.inc.php、include/editpost.inc.php
//修改模版:无
//===========================================================

注意事项:
1、请先设置好后台再玩这个插件,不然出了问题请自行解决。
2、请自行修改监狱插件的公告再玩。
3、监狱长(管理员默认为监狱长)、管理员、总版主、版主可进行抓人。



插件升级说明:
1、修正了2处严重漏洞以及17处小错误。(Freddy,Maple-X)
2、增强逃狱功能,并且修正一处刷逃狱的BUG。(Freddy)
3、增加了所有操作的PMs。(Freddy)
4、后台增加积分策略。(Freddy)
5、为用户增加了各种选项。如:劫狱失败的被关时间、插件页面显示多少犯人再进行翻页、有无保释金的各种劫狱机率的不同设置等等。(Freddy)
6、修正了原版本中的犯人的页面显示不恰当的地方。(Freddy)
7、代码重排。(Freddy)

全新安装开始:(升级安装在二楼)



1 上传upload内的文件!!!

2 升级数据库

MYSQL 版本 > 4.0.* 的升级以下两个表、并根据自己论坛的字符集将gbk设置成相应的:


    CREATE TABLE `cdb_postban` (
      `pb_id` int(10) unsigned NOT NULL auto_increment,
      `username` varchar(15) NOT NULL default '',
      `opername` varchar(15) NOT NULL default '',
      `fid` smallint(6) unsigned NOT NULL default '0',
      `timelimit` int(10) unsigned NOT NULL default '0',
      `starttime` int(10) unsigned NOT NULL default '0',
      `pbmoney` int(10) NOT NULL default '0',
      `reason` text NOT NULL,
      PRIMARY KEY  (`pb_id`),
      KEY `fid` (`fid`)
    ) TYPE=MyISAM DEFAULT CHARSET=gbk ;

    CREATE TABLE `cdb_postban_escapelog` (
      `pb_id` int(10) unsigned NOT NULL auto_increment,
      `prison` varchar(15) NOT NULL default '',
      `starttime` int(10) unsigned NOT NULL default '0',
      PRIMARY KEY  (`pb_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk ;

复制代码


MYSQL 版本 <= 4.0.* 的升级以下两个表:


    CREATE TABLE `cdb_postban` (
      `pb_id` int(10) unsigned NOT NULL auto_increment,
      `username` varchar(15) NOT NULL default '',
      `opername` varchar(15) NOT NULL default '',
      `fid` smallint(6) unsigned NOT NULL default '0',
      `timelimit` int(10) unsigned NOT NULL default '0',
      `starttime` int(10) unsigned NOT NULL default '0',
      `pbmoney` int(10) NOT NULL default '0',
      `reason` text NOT NULL,
      PRIMARY KEY  (`pb_id`),
      KEY `fid` (`fid`)
    ) TYPE=MyISAM ;

    CREATE TABLE `cdb_postban_escapelog` (
      `pb_id` int(10) unsigned NOT NULL auto_increment,
      `prison` varchar(15) NOT NULL default '',
      `starttime` int(10) unsigned NOT NULL default '0',
      PRIMARY KEY  (`pb_id`)
    ) ENGINE=MyISAM ;

复制代码


3 在 include/global.func.php 文件的最后 PHP结束符(?>)之前,插入以下代码:


    //==============禁言检查函数Begin===============
    function postban_check($fid, $theuser){
            global $adminid, $db, $tablepre, $postban; //fixed by Freddy
            if (!$fid || !$theuser) {
                    return 1;
            }
            if ($adminid == '1' || $adminid == '2' || $adminid == '3') {
                    return 1;
            } else {
                    $timestamp = time();
                    $fid=intval($fid);
                    if ($fid < '1') {
                            return 0;
                    }

                    $qq = $db->query("SELECT count(*) FROM {$tablepre}postban WHERE (fid='$fid' or fid='65535') AND username='$theuser' AND timelimit > $timestamp");

                    $post_bancount = $db->result($qq, 0);

                    if ($post_bancount) {
                            return 0;
                    } else {
                            return 1;
                    }
            }
    }
    //=====================END======================

复制代码



4 include/newthread.inc.php

查找:

    if($subject == '' || $message == '') {
                    showmessage('post_sm_isnull');
            }

复制代码


在上面插入:


    //===========板块禁言检查begin========
    if (!$ismoderator) {
            if (!postban_check($forum[fid], $discuz_user)) {
                    showmessage('你在本板块被禁言,不能发贴和编辑');
            }
    }
    //===========板块禁言检查end==========

复制代码


5 include/newreply.inc.php

查找:

    if($subject == '' && $message == '') {

复制代码


在上面插入:


    //===========板块禁言检查begin========
    if (!$ismoderator) {
            if (!postban_check($forum[fid], $discuz_user)) {
                    showmessage('你在本板块被禁言,不能发贴和编辑');
            }
    }
    //===========板块禁言检查end==========

复制代码


6 include/editpost.inc.php

查找:

    if(empty($delete)) {

复制代码


在上面插入:


    //===========板块禁言检查begin========
    if (!$ismoderator) {
            if (!postban_check($forum[fid], $discuz_user)) {
                    showmessage('你在本板块被禁言,不能发贴和编辑');
            }
    }
    //===========板块禁言检查end==========

复制代码


7 在后台的插件添加里面,导入附件里面那个upload外的txt文件:)

8 更新缓存+后台设置


有关此插件的疑问请全部到此贴回复说明!!!
http://www.discuz.net/thread-497153-1-1.html

[ 本帖最后由 freddy 于 2006-12-31 10:03 编辑 ]


图片附件: back.JPG (2023-3-13 16:32, 152.21 K)



图片附件: index.JPG (2023-3-13 16:32, 114.36 K)



图片附件: pm.JPG (2023-3-13 16:32, 105.07 K)



附件: [Plugin]社区监狱.zip (2023-3-13 16:32, 64.04 K)
该附件被下载次数 0
2023-3-13 16:32#1
查看资料  发短消息  顶部
 
Phoenix001
妙语书生 Lv5




UID 181234
精华 2
积分 13
帖子 1490
金币 3003 块
阅读权限 10
注册 2019-5-27
状态 离线
社区监狱 3.0 -> 4.0 升级安装开始:
注意:这次的4.0版是根据http://www.discuz.net/thread-230718-1-2.html基础上开发的,所以只有装过http://www.discuz.net/thread-230718-1-2.html的朋友才可以往下看!!!

一、升级数据库:

MYSQL 版本 > 4.0.* 的升级以下表、并根据自己论坛的字符集将gbk设置成相应的:


    CREATE TABLE `cdb_postban_escapelog` (
      `pb_id` int(10) unsigned NOT NULL auto_increment,
      `prison` varchar(15) NOT NULL default '',
      `starttime` int(10) unsigned NOT NULL default '0',
      PRIMARY KEY  (`pb_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk ;

复制代码


MYSQL 版本 <= 4.0.* 的升级以下表:


    CREATE TABLE `cdb_postban_escapelog` (
      `pb_id` int(10) unsigned NOT NULL auto_increment,
      `prison` varchar(15) NOT NULL default '',
      `starttime` int(10) unsigned NOT NULL default '0',
      PRIMARY KEY  (`pb_id`)
    ) ENGINE=MyISAM ;

复制代码


二、将插件文件包上传覆盖以前的插件文件。

三、将以前添加在include/global.func.php内的函数替换成下面的函数:


    //==============禁言检查函数Begin===============
    function postban_check($fid, $theuser){
            global $adminid, $db, $tablepre, $postban; //fixed by Freddy
            if (!$fid || !$theuser) {
                    return 1;
            }
            if ($adminid == '1' || $adminid == '2' || $adminid == '3') {
                    return 1;
            } else {
                    $timestamp = time();
                    $fid=intval($fid);
                    if ($fid < '1') {
                            return 0;
                    }

                    $qq = $db->query("SELECT count(*) FROM {$tablepre}postban WHERE (fid='$fid' or fid='65535') AND username='$theuser' AND timelimit > $timestamp");

                    $post_bancount = $db->result($qq, 0);

                    if ($post_bancount) {
                            return 0;
                    } else {
                            return 1;
                    }
            }
    }
    //=====================END======================

复制代码


最后:更新缓存+后台设置。

[ 本帖最后由 freddy 于 2006-12-30 18:12 编辑 ]
2023-3-13 16:32#2
查看资料  发短消息  顶部
       


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2024-4-30 00:18 清除 Cookies - 联系我们 - ZAKE萨尔克岛 - AbyssalSwamp深渊之沼