Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

====开心农场====牧场代码精简以及小BUG清除~~~

[复制链接]
liuzhly 发表于 2009-12-28 14:58:34 | 显示全部楼层 |阅读模式
1、小BUG ,如果用户设置队形问候语中有 双引号 的话,牧场将无限初始化~~~

解决方法newmc.php,红色为增加::

//动物列队
if( $_REQUEST['mod'] == "cgi_set_parade" ) {

                $parade['pinfo'] = $_REQUEST['pinfo'];
                $parade['pid'] = $_REQUEST['pid'];
                $parade = json_encode($parade);
                $parade = str_replace( "\"{", "{", $parade );
                $parade = str_replace( "}\"", "}", $parade );
                $parade = str_replace( "\\u", "\\\\u", $parade );

                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set parade='".$parade."' where uid=".intval( $_REQUEST['uIdx']));
                echo "{\"code\":1}";
}

修改为:

function strreplace($strs){
        return str_replace(array(",","\\\"","\\'","\\","\t","\r\n","\n","\r"),array(';','``','`','|','',' ','',''),$strs);
}

//动物列队
if( $_REQUEST['mod'] == "cgi_set_parade" ) {

                $parade['pinfo'] = strreplace($_REQUEST['pinfo']);
                $parade['pid'] = $_REQUEST['pid'];
                $parade = json_encode($parade);
                $parade = str_replace( "\"{", "{", $parade );
                $parade = str_replace( "}\"", "}", $parade );
                $parade = str_replace( "\\u", "\\\\u", $parade );

                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set parade='".$parade."' where uid=".intval( $_REQUEST['uIdx']));
                echo "{\"code\":1}";
}


顺便修改留言里的:

if ( $_REQUEST['mmod'] == "chat" && $_REQUEST['mod'] == "common" && $_REQUEST['act'] == "sendChat" )
{
。。。。。。。。。。。。。。
                                $chat->c[] = "{\"fromId\":\"".$_SGLOBAL['supe_uid']."\",\"fromName\":\"".$space[name]."\",\"toId\":\"".intval($_REQUEST['toId'])."\",\"toName\":\"".$uidspace[name]."\",\"time\":".$_SGLOBAL['timestamp'].",\"msg\":\"".$_REQUEST['msg']."\",\"isReply\":".$_REQUEST['isReply']."}";                        

改为:
        $REQUEST_msg = strreplace($_REQUEST['msg']);
        $chat->c[] = "{\"fromId\":\"".$_SGLOBAL['supe_uid']."\",\"fromName\":\"".$space[name]."\",\"toId\":\"".intval($_REQUEST['toId'])."\",\"toName\":\"".$uidspace[name]."\",\"time\":".$_SGLOBAL['timestamp'].",\"msg\":\"".$REQUEST_msg."\",\"isReply\":".$_REQUEST['isReply']."}";


Ok!!!
回复

使用道具 举报

 楼主| liuzhly 发表于 2009-12-28 14:58:52 | 显示全部楼层
本帖最后由 liuzhly 于 2009-12-28 15:06 编辑

2、精简(建议SAM兄精简后发布):

if ( $_REQUEST['mod'] == "cgi_harvest_product" ){
。。。。。。。。。。。。。
if(!$flag){
       $cName="";
        switch ($_REQUEST['type']) {
                case 1001:
                        $cName="\\u9E21\\u86CB";
                        break;
                case 1002:
                        $cName="\\u5154\\u4ED4";
                        break;
                                                                        case 1003:
                                                                                $cName="\\u9E45\\u86CB";
                                                                                break;
                                                                        case 1004:
                                                                                $cName="\\u5C0F\\u732B\\u4ED4";
                                                                                break;
                                                                        case 1005:
                                                                                $cName="\\u5B54\\u96C0\\u6BDB";
                                                                                break;
                                                                        case 1006:
                                                                                $cName="\\u5C0F\\u4F01\\u9E45";
                                                                                break;
                                                                        case 1007:
                                                                                $cName="\\u5C0F\\u4E4C\\u9F9F";
                                                                                break;
                                                                        case 1008:
                                                                                $cName="\\u677E\\u9F20\\u5D3D";
                                                                                break;
                                                                        case 1009:
                                                                                $cName="\\u5C0F\\u6CE2\\u65AF\\u732B\\u5D3D";
                                                                                break;
                                                                        case 1501:
                                                                                $cName="\\u7F8A\\u6BDB";
                                                                                break;
                                                                        case 1502:
                                                                                $cName="\\u725B\\u5976";
                                                                                break;
                                                                        case 1503:
                                                                                $cName="\\u5C0F\\u7334\\u4ED4";
                                                                                break;
                                                                        case 1504:
                                                                                $cName="\\u5C0F\\u888B\\u9F20";
                                                                                break;
                                                                        case 1505:
                                                                                $cName="\\u5C0F\\u6885\\u82B1\\u9E7F";
                                                                                break;
                                                                        case 1507:
                                                                                $cName="\\u5C0F\\u7F9A\\u7F8A";
                                                                                break;
                                                                }
                                                                $mc_repertory->r[] = "{\"cId\":".$_REQUEST['type'].",\"cName\":\"".$cName."\",\"harvest\":".$value->totalCome.",\"scrounge\":0}";
                                                        }


修改为:

                                if(!$flag){
                                        $cName=$animalname[$_REQUEST['type']][name];
                                        $mc_repertory->r[] = "{\"cId\":".$_REQUEST['type'].",\"cName\":\"".$cName."\",\"harvest\":".$value->totalCome.",\"scrounge\":0}";
                                }


继续下面的:

if(!$flag){
                                                                                                                                                                        $cName="";
                                                                                                                                                                        switch ($cid) {
                                                                                                                                                                                case 11001:
                                                                                                                                                                                        $cName="\\u9E21";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11002:
                                                                                                                                                                                        $cName="\\u5154\\u5B50";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11003:
                                                                                                                                                                                        $cName="\\u9E45";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11004:
                                                                                                                                                                                        $cName="\\u732B";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11005:
                                                                                                                                                                                        $cName="\\u5B54\\u96C0";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11006:
                                                                                                                                                                                        $cName="\\u4F01\\u9E45";
                                                                                                                                                                                        break;
                                                                                                                                                                               case 11007:
                                                                                                                                                                                        $cName="\\u4E4C\\u9F9F";
                                                                                                                                                                                        break;
                                                                                                                                                                               case 11008:
                                                                                                                                                                                        $cName="\\u677E\\u9F20";
                                                                                                                                                                                        break;
                                                                                                                                                                               case 11009:
                                                                                                                                                                                        $cName="\\u6CE2\\u65AF\\u732B";
                                                                                                                                                                                        break;
                                                                                                                                                                               case 11501:
                                                                                                                                                                                        $cName="\\u7F8A";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11502:
                                                                                                                                                                                        $cName="\\u725B";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11503:
                                                                                                                                                                                        $cName="\\u7334\\u5B50";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11504:
                                                                                                                                                                                        $cName="\\u888B\\u9F20";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11505:
                                                                                                                                                                                        $cName="\\u6885\\u82B1\\u9E7F";
                                                                                                                                                                                        break;
                                                                                                                                                                                case 11507:
                                                                                                                                                                                        $cName="\\u7F9A\\u7F8A";
                                                                                                                                                                                        break;
                                                                                                                                                                        }
             $mc_repertory->r[] = "{\"cId\":".$cid.",\"cName\":\"".$cName."\",\"harvest\":1,\"scrounge\":0}";
                                                                                                                                                                }

修改为:

                if(!$flag){
                        $cName=$animalname[$cid][name];
                        $mc_repertory->r[] = "{\"cId\":".$cid.",\"cName\":\"".$cName."\",\"harvest\":1,\"scrounge\":0}";
                }


继续找到:

if ( $_REQUEST['mod'] == "cgi_steal_product" )
。。。。。。。。。。。。。。。。。
if(!$flag){
        $cName="";
        switch ($_REQUEST['type']) {
                case 1001:
                        $cName="\\u9E21\\u86CB";
                        break;
                                                                                                                                                                              case 1002:
                        $cName="\\u5154\\u4ED4";
                        break;
                                                                                                                                                                              case 1003:
                         $cName="\\u9E45\\u86CB";
                         break;
                                                                                                                                                                              case 1004:
                         $cName="\\u5C0F\\u732B\\u4ED4";
                         break;
                                                                                                                                                                              case 1005:
                         $cName="\\u5B54\\u96C0\\u6BDB";
                         break;
                                                                                                                                                                              case 1006:
                         $cName="\\u5C0F\\u4F01\\u9E45";
                         break;
                                                                                                                                                                               case 1007:
                          $cName="\\u5C0F\\u4E4C\\u9F9F";
                          break;
                                                                                                                                                                               case 1008:
                          $cName="\\u677E\\u9F20\\u5D3D";
                          break;
                                                                                                                                                                               case 1009:
                         $cName="\\u5C0F\\u6CE2\\u65AF\\u732B\\u5D3D";
                         break;
                                                                                                                                                                               case 1501:
                         $cName="\\u7F8A\\u6BDB";
                         break;
                                                                                                                                                                               case 1502:
                         $cName="\\u725B\\u5976";
                         break;
                                                                                                                                                                               case 1503:
                        $cName="\\u5C0F\\u7334\\u4ED4";
                        break;
                                                                                                                                                                               case 1504:
                        $cName="\\u5C0F\\u888B\\u9F20";
                        break;
                                                                                                                                                                               case 1505:
                        $cName="\\u5C0F\\u6885\\u82B1\\u9E7F";
                        break;
                                                                                                                                                                               case 1507:
                        $cName="\\u7F9A\\u7F8A";
                        break;
          }
                  $mc_repertory->r[] = "{\"cId\":".$_REQUEST['type'].",\"cName\":\"".$cName."\",\"harvest\":0,\"scrounge\":".$tounum."}";
                                                                                                                                                                        }
修改为:

                                        if(!$flag){
                                                $cName=$animalname[$_REQUEST['cId']][name];
                                                $mc_repertory->r[] = "{\"cId\":".$_REQUEST['type'].",\"cName\":\"".$cName."\",\"harvest\":0,\"scrounge\":".$tounum."}";
                                        }
回复

使用道具 举报

亲亲网 发表于 2009-12-28 15:00:17 | 显示全部楼层
支持一下 呵呵
回复

使用道具 举报

 楼主| liuzhly 发表于 2009-12-28 15:07:37 | 显示全部楼层
本帖最后由 liuzhly 于 2009-12-28 15:09 编辑

提示:对代码不熟悉的请勿照抄!
回复

使用道具 举报

青青小天 发表于 2009-12-28 15:50:23 | 显示全部楼层
高手就是高手呀
回复

使用道具 举报

nanyuanjin 发表于 2009-12-28 16:00:42 | 显示全部楼层
高手就是高手呀
回复

使用道具 举报

patiku 发表于 2009-12-28 18:46:23 | 显示全部楼层
代码优化是一门学问!
支持liuzhly的细心、也支持您的能力.....
回复

使用道具 举报

cjlyr 发表于 2009-12-28 19:44:34 | 显示全部楼层
支持!楼主又有新成果了!辛苦了!
回复

使用道具 举报

kazzak 发表于 2009-12-29 10:01:15 | 显示全部楼层
((em:01))((em:01))
回复

使用道具 举报

海鸥FLY 发表于 2009-12-30 15:49:49 | 显示全部楼层
楼主,太爱你了~╭(╯3╰)╮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-10-23 10:44 , Processed in 0.108865 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表