PDA

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


gevara
25.06.2008, 00:06
скрипт принимает данные от клиента:

$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);


затем отправляет их ему:

$ans = mysql_query("SELECT answer from `cn` WHERE hash = '$hash'", $db);
$row = mysql_fetch_array($ans, MYSQL_NUM);
print 'success:'.$row[0];


таблица cn создавалась так:

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 от начала, смещение не зависит от самих данных - появляется всегда в одном и том-же месте. в чём может быть проблемма и как с ней справиться?