本帖最后由 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( );
} |