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

 找回密码
 立即注册
搜索

=====开心农场=====赠送农场装饰,有可能导致某些装饰丢失BUG..

[复制链接]
liuzhly 发表于 2010-1-15 00:40:28 | 显示全部楼层 |阅读模式
本帖最后由 liuzhly 于 2010-01-15 00:43 编辑

照例打开:newfarmjson.php !

$decorative = array(...........)  定义的变量已经在 系统farm.php中已定义,下面的变量需要改名,蓝色是增加的!另外,红色部分是修复代码,原来的代码可能(几率大于50%,经测试丢失装饰不一定,最后确定BUG)导致丢失!你改完了应该不会丢了!

if ( $_REQUEST['mod'] == "message" && $_REQUEST['act'] == "openMessage" && $_REQUEST['type'] == "4" )
{
                                $message = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT message FROM ".tname( "plug_newfarm" )." where uid=".$_SGLOBAL['supe_uid'] ), 0 );
                                $message = json_decode( $message );

                                $decorativearr = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT decorative FROM ".tname( "plug_newfarm" )." where uid=".$_SGLOBAL['supe_uid'] ), 0 );
                                $decorativearr = json_decode( $decorativearr );


                                $writesql = 0;
                                foreach ( $message->d as $key => $value )
                                {
                                                                if ( $_REQUEST['id'] == $value->id )
                                                                {
                                                                                                if ( $value->status == 0 )
                                                                                                {
                                                                                                                                $writesql = 1;
                                                                                                                                $value->status = 1;
                                                                                                }
                        $value_itemId = $value->itemId;
                        $value_validTime = $value->validTime;


                                                                $messagetype4 = "{\"id\":\"".$value->id."\",\"itemId\":\"".$value->itemId."\",\"itemType\":\"".$value->itemType."\",\"validTime\":\"".$value->validTime."\",\"status\":\"2\",\"itemName\":\"\",\"name\":\"".$value->name."\"}";
                                                                }
                                }
                                if ( $writesql == 1 )
                                {

                                                                foreach ( $decorativearr as $key1 => $value1 )
                                                                {
                                                                        foreach ( $value1 as $key2 => $value2 )
                                                                        {
                                                                                if ( $key2 == $value_itemId )
                                                                                {
                                                                                $value2->validtime = $value_validTime;
                                                                                //echo "-";
                                                                                }
                                                                        }
                                                                }
                                                                //exit( ) ;
                                                                $message = str_replace( "\\", "\\\\", json_encode( $message ) );
                                                                $decorativearr = json_encode( $decorativearr );
                                                                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set message='".$message."' where uid=".$_SGLOBAL['supe_uid'] );
                                                                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set decorative='".$decorativearr."' where uid=".$_SGLOBAL['supe_uid'] );
                                }
                                echo $messagetype4;
}


另一个地方:

if ( $_REQUEST['mod'] == "message" && $_REQUEST['act'] == "sendMessage" && $_REQUEST['type'] == "4" )
{
                                $message = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT message FROM ".tname( "plug_newfarm" )." where uid=".intval( $_REQUEST['toId'] ) ), 0 );
                                $message = json_decode( $message );

                                $decorativearr = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT decorative FROM ".tname( "plug_newfarm" )." where uid=".$_SGLOBAL['supe_uid'] ), 0 );
                                $decorativearr = json_decode( $decorativearr );
                                $validTime = $_SGLOBAL['timestamp'] + 2505600;
                                $message->d[] = "{\"id\":\"".$_SGLOBAL['timestamp']."\",\"itemId\":\"".$_REQUEST['id']."\",\"itemType\":\"".$_REQUEST['type']."\",\"validTime\":\"".$validTime."\",\"status\":\"0\",\"itemName\":\"\",\"name\":\"".unicode_encodegb( $value[username] )."\"}";
                                $message = json_encode( $message );
                                $message = str_replace( "\"{", "{", $message );
                                $message = str_replace( "}\"", "}", $message );
                                $message = str_replace( "\\u", "\\\\u", $message );
                                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set message='".$message."' where uid=".intval( $_REQUEST['toId'] ) );
                                foreach ( $decorativearr as $key1 => $value1 )
                                {
                                        foreach ( $value1 as $key2 => $value2 )
                                                                {
                                                if ( $key2 == $_REQUEST['id'] )
                                                                                                {
                                                        $value2->validtime = "1";
                                                        //echo "-";
                                                }
                                        }
                                }
                                $decorativearr = json_encode( $decorativearr );
                                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set decorative='".$decorativearr."' where uid=".$_SGLOBAL['supe_uid'] );
                                echo "{\"code\":1,\"type\":4,\"id\":\"".$_REQUEST['id']."\"}";
                                exit( );
}

评分

1

查看全部评分

回复

使用道具 举报

patiku 发表于 2010-1-15 02:04:28 | 显示全部楼层
顶~~技术好文!
楼主您辛苦了......
回复

使用道具 举报

xiaolooo 发表于 2010-1-15 05:31:59 | 显示全部楼层
感谢分享!!!
回复

使用道具 举报

kazzak 发表于 2010-1-15 08:35:13 | 显示全部楼层
没有沙发了、、顶
回复

使用道具 举报

kazzak 发表于 2010-1-15 08:38:13 | 显示全部楼层
那个arr和前面的单词是没有空格是把?
回复

使用道具 举报

 楼主| liuzhly 发表于 2010-1-15 09:02:32 | 显示全部楼层
那个arr和前面的单词是没有空格是把?
kazzak 发表于 2010-01-15 08:38



    那是肯定地
回复

使用道具 举报

dansui1314 发表于 2010-1-15 09:30:13 | 显示全部楼层
支持了!!!!
回复

使用道具 举报

火风 发表于 2010-1-15 14:40:59 | 显示全部楼层
用上了,相当的不错!!!!
支持楼主!!!!!!!!
感谢楼主!!!!!!!!!!
回复

使用道具 举报

samfs 发表于 2010-1-15 18:04:23 | 显示全部楼层
感谢楼主!!!!!!!!!!
回复

使用道具 举报

samfs 发表于 2010-1-19 23:44:07 | 显示全部楼层
感谢高手无私、细心、服务大家。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-21 18:44 , Processed in 0.115212 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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