почему искажаются данные при чтении из БД?

Discussion in 'PHP' started by gevara, 25 Jun 2008.

  1. gevara

    gevara Elder - Старейшина

    Joined:
    29 Nov 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    5
    скрипт принимает данные от клиента:
    Code:
    	$h_postbuffer = fopen("php://input", "rb");
    			
    	while(!feof($h_postbuffer))
    	{
    		$buffer = $buffer.fread($h_postbuffer, 1024);
    	}
    	
    	mysql_query("UPDATE `cn` SET `answer` = '$buffer', `moded` =".time()." WHERE hash = '$hash'", $db);
    
    затем отправляет их ему:
    Code:
    	$ans = mysql_query("SELECT answer from `cn` WHERE hash = '$hash'", $db);
             $row = mysql_fetch_array($ans, MYSQL_NUM);
    	print 'success:'.$row[0];
    
    таблица cn создавалась так:
    Code:
        mysql_query("
            CREATE TABLE `cn` (
            `id` bigint(20) NOT NULL auto_increment,
            `time` int(11) NOT NULL default '0',
            `ip` text NOT NULL,
            `country` text NOT NULL,
            `hash` text NOT NULL,
            `task` MEDIUMTEXT BINARY,
            `answer` MEDIUMTEXT BINARY,
            PRIMARY KEY  (`id`),
            `moded` int(11) NOT NULL default '0'
            ) TYPE=MyISAM  AUTO_INCREMENT=1;"
        );
    
    в итоге переданные на сервер данные (я передаю данные в base64, то есть данные только текстовые) не совпадают с полученными, а именно:

    я передаю серверу это:
    ...E4ARgBPADoAIAAgACAAQwBvAHAAaQBlAGQAIABm

    в БД это:
    ...E4ARgBPADoAIAAgACAAQwBvAHAAaQBlAGQAIABm

    а сервер мне выдаёт это:
    ...E4ARgBPADoAIAAgAC..10ae..AAQwBvAHAAaQBlAGQAIABm

    на моём сервере такого глюка нет, но попробовал запускать на других - там он появляется. левые символы ..10ae.. появляются по смещению 0x0EDD от начала, смещение не зависит от самих данных - появляется всегда в одном и том-же месте. в чём может быть проблемма и как с ней справиться?
     
    #1 gevara, 25 Jun 2008
    Last edited: 25 Jun 2008